国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Swift > 正文

swift控件工廠(chǎng)類(lèi)的實(shí)現(xiàn)代碼

2020-03-09 17:44:13
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

控件工廠(chǎng)類(lèi),簡(jiǎn)而言之就是,減少代碼的復(fù)用率,只在哪里用,然后在哪里調(diào):

代碼如下:

 

import UIKitclass ViewFactory: UIView,UITextFieldDelegate {  //默認(rèn)控件的尺寸  class func getDefaultFrame( ) -> CGRect  {    let defaultFrame = CGRect(x:0,y:0,width:100,height:30)    return defaultFrame  }    //類(lèi)方法  class func createControl(type:String,title:[String],action:Selector,sender:AnyObject) -> UIView  {    switch type {    case "label":      return ViewFactory.creatLabel(title: title[0])      case "button":      return ViewFactory.createButton(title: title[0], action: action, sender: sender as! UIViewController)      case "text":      return ViewFactory.creatTextField(value: title[0], action: action, sender: sender as! UIViewController as UIViewController as! UITextFieldDelegate)      case "segment":      return ViewFactory.creatSegment(items: [title[0]], action: action, sender: sender as! UIViewController)    default:      return ViewFactory.creatLabel(title: title[0])    }  }    //創(chuàng)建按鈕控件  class func createButton(title:String, action:Selector, sender:UIViewController)    -> UIButton {      let button = UIButton(frame:ViewFactory.getDefaultFrame())      button.backgroundColor = UIColor.orange      button.setTitle(title, for:.normal)      button.titleLabel!.textColor = UIColor.white      button.titleLabel!.font = UIFont.systemFont(ofSize: 14)      button.addTarget(sender, action:action, for:.touchUpInside)      return button  }    //創(chuàng)建文本輸入框控件  class func creatTextField(value:String,action:Selector,sender:UITextFieldDelegate) -> UITextField  {    let textField = UITextField(frame:ViewFactory.getDefaultFrame())    textField.backgroundColor = UIColor.clear    textField.textColor = UIColor.black    textField.text = value    textField.borderStyle = .roundedRect    textField.adjustsFontSizeToFitWidth = true    textField.delegate = sender    return textField  }    //創(chuàng)建分段單選組件  class func creatSegment(items:[String],action:Selector,sender:UIViewController) -> UISegmentedControl  {    let segment = UISegmentedControl(items:items)    segment.frame = ViewFactory.getDefaultFrame()    segment.isMomentary = false    segment.addTarget(self, action: action, for: .valueChanged)    return segment  }    //創(chuàng)建文本標(biāo)簽控件  class func creatLabel(title:String) -> UILabel  {    let label = UILabel()    label.textColor = UIColor.black    label.backgroundColor = UIColor.white    label.text = title    label.frame = ViewFactory.getDefaultFrame()    label.font = UIFont(name:"微軟雅黑",size:16)    return label      }}

調(diào)用:

 

 func initVIewFactory()  {    //創(chuàng)建文本標(biāo)簽    let labelNum = ViewFactory.creatLabel(title: "閾值")    labelNum.frame = CGRect(x:20,y:100,width:60,height:30)    self.view.addSubview(labelNum)        let labelDm = ViewFactory.creatLabel(title: "維度")    labelDm.frame = CGRect(x:20,y:200,width:60,height:30)    self.view.addSubview(labelDm)        //創(chuàng)建文本輸入框    textNum = ViewFactory.creatTextField(value: "", action:#selector(factoryAction), sender: self as UITextFieldDelegate)    textNum.frame = CGRect(x:80,y:100,width:200,height:30)    textNum.returnKeyType = .done    self.view.addSubview(textNum)        let textNumSecond = ViewFactory.creatTextField(value: "", action: #selector(factoryActionSecond), sender: self as UITextFieldDelegate)    textNumSecond.frame = CGRect(x:80,y:200,width:200,height:30)    textNum.returnKeyType = .done    self.view.addSubview(textNumSecond)        //創(chuàng)建分段單選控件    segmentC = ViewFactory.creatSegment(items: ["3*3","4*4","5*5"], action: #selector(segmentAction), sender: self)    segmentC.frame = CGRect(x:80,y:200,width:200,height:30)    self.view.addSubview(segmentC)    segmentC.selectedSegmentIndex = 0        //創(chuàng)建按鈕控件    factorybtn = ViewFactory.createButton(title: "確定", action: #selector(factoryClick), sender: self)    factorybtn.frame.origin = CGPoint(x:80,y:300)    self.view.addSubview(factorybtn)      }    func factoryAction()  {      }    func factoryActionSecond()  {      }    func segmentAction()  {      }    func factoryClick()  {    print("我點(diǎn)擊了")  }

效果如下:

swift,控件工廠(chǎng)類(lèi)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到swift教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 丘北县| 穆棱市| 图片| 台山市| 贵南县| 喀喇沁旗| 云阳县| 炎陵县| 玉树县| 孝昌县| 清新县| 扎兰屯市| 洛浦县| 中山市| 卫辉市| 抚州市| 惠来县| 民权县| 宜兴市| 乡宁县| 华蓥市| 如皋市| 迭部县| 仙游县| 广河县| 洮南市| 泗阳县| 清徐县| 蚌埠市| 定日县| 紫云| 嵊州市| 彝良县| 平乐县| 石林| 虞城县| 滦平县| 湖州市| 泽普县| 晋中市| 海门市|