自定义控件 @IBDesignable @IBInspectable

来源:互联网 发布:超市软件安装视频 编辑:程序博客网 时间:2024/06/05 01:10
////  MyView.swift//  Draw////  Created by Johnson on 15/10/2.//  Copyright (c) 2015年 apple. All rights reserved.//import UIKit@IBDesignable class MyView: UIView {        @IBInspectable var myNewPro:String = ""         @IBInspectable  var borderWidth:CGFloat = 0 {        didSet{            layer.borderWidth = borderWidth        }    }            @IBInspectable var borderColor:UIColor = UIColor.clearColor(){        didSet{            layer.borderColor = borderColor.CGColor        }    }        @IBInspectable var cornerRadius:CGFloat = 0{        didSet{            layer.cornerRadius = cornerRadius        }    }        //为了storyboard可以使用    required init(coder aDecoder: NSCoder) {        super.init(coder: aDecoder)!    }        override init(frame: CGRect) {        super.init(frame: frame)    }    /*    // Only override drawRect: if you perform custom drawing.    // An empty implementation adversely affects performance during animation.    override func drawRect(rect: CGRect) {        // Drawing code    }    */}

1.@IBDesignable加在类上表示这个类是一个可以被设计的类

2.@IBInspectable加在字段上,表示这个字段可以在XCODE的属性检查面板上设置.

3.didSet是一个值监听器,表示设置了值之后的操作

4.继承了UIView之后,对界面的操作和设置主要是layer属性来控制的,可以在标识检查面板上设置默认UIView的承载类是MyView.

5.被注释的drawRect方法是UIView的重写方法,参数是UIView的边界矩形.可以通过 let ctx = UIGraphicsGetCurrentContext(),获得画布上下文.

CGContextXXXX系列的方法结合上下文来画图.   

6.在设置值后,调用 self.setNeedsDisplay()方法会重新调用drawRect方法,可以不断的控制自定义的UI.




0 0
原创粉丝点击