Swift - 生成各种控件的工厂类(包含标签,按钮,输入框等)

Swift - 生成各种控件的工厂类(包含标签,按钮,输入框等),第1张

概述在iOS开发中,页面里有时会大量的用到一些控件,如果要一个个单独创建再设置样式的话就显得很麻烦。我们可以创建一个生成各种控件的工厂类,这样在需要的时候调用下就可以了。 下面以一个自定义的工厂类为例,其中提供了文本标签,按钮,文本输入框,分段单选控件的生成,效果图如下:    工厂类:ViewFactory.swift 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 在iOS开发中,页面里有时会大量的用到一些控件,如果要一个个单独创建再设置样式的话就显得很麻烦。我们可以创建一个生成各种控件的工厂类,这样在需要的时候调用下就可以了。 下面以一个自定义的工厂类为例,其中提供了文本标签,按钮,文本输入框,分段单选控件的生成,效果图如下: 工厂类:VIEwFactory.swift
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 @H_419_68@ 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 import UIKit class VIEwFactory { /** * 控件默认尺寸 */ class func getDefaultFrame() -> CGRect { let defaultFrame = CGRectMake (0,100,30) return defaultFrame } createControl(type: String ,Title:[ ],action: Selector AnyObject ) -> UIVIEw { switch (type) { case "label" : return VIEwFactory .createLabel(Title[0]) "button" : .createbutton(Title[0],action: action, sender: sender as UIVIEwController ) "text" : .createTextFIEld(Title[0], UITextFIEldDelegate ) "segment" : .createSegment(Title,sender: sender ) default : .createLabel(Title[0]) } } /** * 创建按钮控件 */ createbutton(Title: )-> UIbutton { var button = UIbutton (frame: .getDefaultFrame()) button.backgroundcolor = UIcolor .orangecolor() button.setTitle(Title,forState:. normal ) button.TitleLabel!.textcolor = .whitecolor() button.TitleLabel!.Font = UIFont .systemFontOfSize(14) button.addTarget(sender,action:action,forControlEvents: UIControlEvents . touchUpInsIDe ) button } /** * 创建文本输入框控件 */ createTextFIEld(value: ) -> UITextFIEld { textFIEld = UITextFIEld .getDefaultFrame()) textFIEld.backgroundcolor = .clearcolor() textFIEld.textcolor = .blackcolor() textFIEld.text = value textFIEld.borderStyle = UITextborderStyle RoundedRect textFIEld.adjustsFontSizetoFitWIDth = true @[email protected] = sender textFIEld } /** * 创建分段单选控件 */ createSegment(items: [ ) UISegmentedControl { segment = UISegmentedControl (items:items) segment.frame = .getDefaultFrame() //segment.segmentedControlStyle = UISegmentedControlStyle.bordered segment.momentary = false segment.addTarget(sender,147)!important">ValueChanged ) segment } /** * 创建文本标签控件 */ createLabel(Title: UILabel { label = UILabel () label.textcolor = .blackcolor(); label.backgroundcolor = .whitecolor(); label.text = Title; label.frame = .getDefaultFrame() label.Font = (name: "HelveticaNeue-Bold" 工厂类的使用: 49
VIEwController : { txtNum: ! segDimension: ! btn: ! overrIDe vIEwDIDLoad() { super .vIEwDIDLoad() // Do any additional setup after loading the vIEw,typically from a nib. setupControls() } setupControls() { //创建文本标签 labelNum = .createLabel( "阈值:" ) labelNum.frame = CGRect (x: 20,y: 100,wIDth: 60,height: 30) self .vIEw.addSubvIEw(labelNum) labelDm = "维度:" labelDm.frame = .createTextFIEld( "" ( "numChanged" ),sender: ) txtNum.frame = (x:80,y:100,wIDth:200,height:30) txtNum.returnKeyType = UIReturnKeyType Done .vIEw.addSubvIEw(txtNum) //创建分段单选控件 segDimension = .createSegment([ "3x3" "4x4" "5x5" "dimensionChanged:" ) segDimension.frame = .createbutton( "确定" nil ) btn.frame.origin = CGPointMake (80,300) .vIEw.addSubvIEw(btn) } dIDReceiveMemoryWarning() { .dIDReceiveMemoryWarning() // dispose of any resources that can be recreated. } 原文出自: www.hangge.com 转载请保留原文链接: http://www.hangge.com/blog/cache/detail_655.html 总结

以上是内存溢出为你收集整理的Swift - 生成各种控件的工厂类(包含标签,按钮,输入框等)全部内容,希望文章能够帮你解决Swift - 生成各种控件的工厂类(包含标签,按钮,输入框等)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1079636.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)