浅谈自定义UIView

  • 在开发中,我们经常会自定义一些控件来满足实际的开发需要,比如自定义图片滚动器,照片浏览器等等。。。这里就来聊聊自定义控件的一些事儿。

代码创建

  • 通过代码创建控件通常在自定义的控件类中的步骤:

1.重写UIView的init(frame:CGRect)方法,在该方法中创建子控件,并添加到自己上面;

2.写一个私有方法,设置子控件和自己的一些属性,比如颜色、文字信息等

3.在layoutSubView中,添加subView的frame

import UIKit

class RedView: UIView {

    var subView: UIView!

    override init(frame: CGRect) {

        super.init(frame: frame)

        let subView = UIView()

        self.subView = subView

        self.addSubview(subView)

        handleForView()

    }

    required init?(coder aDecoder: NSCoder) {

        super.init(coder: aDecoder)

        handleForView()

    }

    private func handleForView(){
        subView.backgroundColor = UIColor.greenColor()
    }

    override func layoutSubviews() {

        super.layoutSubviews()

        subView.frame = CGRectMake(0, 0,self.frame.width*0.5,self.frame.height * 0.5)
    }

}

xib/storyBoard创建

  • 通过xib/storyBoard创建自定义控件的步骤:

1.重写UIView的init(coder aDecoder: NSCoder)方法
2.写一个私有方法,用来设置子空间和自己的一些属性,比如颜色,文字等。。。
3.重写awakeFromNib方法,这个方法用来辅助init(coder aDecoder: NSCoder)对控件进行初始化工作,因为通过xib或者storyBoard方式拖线的控件很可能在init方法中还没有创建,这时把对拖线的属性放在awakeFromNib方法中更为合理。
4.子控件frame通常是在xib中设置。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容