Swift自定义view和OC自定义view的原理都是一样的,重写init()方法或initWithFrame()方法,下面简单说说如何自定义swift UIVIEw
主要是重写init(frame:CGRect)方法,其中required init?(coder aDecoder: NSCoder) 是必不可少的,swift语言强制要求的
//// LoginimgFIEldVIEw.swift// SmartMilk//// Created by mac on 2017/6/9.// copyright © 2017年 mac. All rights reserved.//import UIKitlet G_headIMAGE_HEIGHT:CGfloat = 30class LoginimgFIEldVIEw: UIVIEw { var headimgVIEw:UIImageVIEw? var fIEld:UITextFIEld? var line:UILabel? /* // Only overrIDe draw() if you perform custom drawing. // An empty implementation adversely affects performance during animation. overrIDe func draw(_ rect: CGRect) { // Drawing code } */// overrIDe init(){// super.init()// setupSubVIEws()// } overrIDe init(frame:CGRect){ super.init(frame: frame) setupSubVIEws() } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } func setupSubVIEws() { let frame = self.bounds //uiimageVIEw headimgVIEw = UIImageVIEw(frame:CGRect(x:0,y:0,wIDth:G_headIMAGE_HEIGHT,height:G_headIMAGE_HEIGHT)) headimgVIEw?.backgroundcolor = UIcolor.blue //uiTextFIEld fIEld = UITextFIEld(frame:CGRect(x:0,wIDth:100,height:G_headIMAGE_HEIGHT))// fIEld?.Font = UIFont.systemFont(ofSize: 15) //uiLabel line = UILabel(frame: CGRect(x:0,y:frame.size.height-1,wIDth:frame.size.wIDth,height:1)) line?.backgroundcolor = UIcolor.orange self.addSubvIEw(headimgVIEw!) self.addSubvIEw(fIEld!) self.addSubvIEw(line!) } overrIDe func layoutSubvIEws() { super.layoutSubvIEws() let frame = self.bounds let imgY = (frame.size.height - G_headIMAGE_HEIGHT)/2 headimgVIEw?.frame = CGRect(x:0,y:imgY,height:G_headIMAGE_HEIGHT) //fIEld let fIEldx = G_headIMAGE_HEIGHT+5 let fIElDWIDth = frame.size.wIDth - fIEldx fIEld?.frame = CGRect(x: fIEldx,y: imgY,wIDth: fIElDWIDth,height: G_headIMAGE_HEIGHT) //label var lineFrame = line?.frame lineFrame?.origin.y = frame.size.height - 2 lineFrame?.size.wIDth = frame.size.wIDth line?.frame = lineFrame! }}总结
以上是内存溢出为你收集整理的Swift之自定义UIView全部内容,希望文章能够帮你解决Swift之自定义UIView所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)