小编给大家分享一下Swift如何自定义UIView,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
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 UIKit let G_HEADIMAGE_HEIGHT:CGFloat = 30 class 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,y: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,width:G_HEADIMAGE_HEIGHT,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”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。