查看苹UIKit参考手册看许控件像 UILabel UIWebView 直接继承于UIView尽管些棘手事情像 UIButton UISwitch 继承于 UIControl 像层级关系所示:
注意:想查看完整UI组件类层级示意图请阅读UIKit Framework Reference
UIControl 使用target-action pattern机制种用于通知用户信息改变机制 UIControl 具属性表示前控制状态自定义控件使用target-action pattern所 UIControl 担重要起始点
项目导航右击CustomSliderExample组选择New File…选择iOS/Source/Cocoa Touch Class模板点击Next类取名RangeSliderSubclass of输入 UIControl 并且确保语言选择Swift点击步选择Create使用默认位置保存新类
尽管写代码件漂亮事能想看看控件实际屏幕显示效解项目进展写其代码前先控件添加view controller便我随查看控件制作进展程度
打ViewController.swift替换:
import UIKitclass
ViewController: UIViewController {
let rangeSlider = RangeSlider(frame: CGRectZero)
override func viewDidLoad() {
super.viewDidLoad()
rangeSlider.backgroundColor = UIColor.redColor()
view.addSubview(rangeSlider)
}
override func viewDidLayoutSubviews() {
let margin: CGFloat = 20.0
let width = view.bounds.width - 2.0 * margin
rangeSlider.frame = CGRect(x: margin, y: margin + topLayoutGuide.length,
width: width, height: 31.0)
}}
面代码简单创建指定全新控件实例并且实例添加视图内控件背景颜色已经设置红色使其应用背景形鲜明比背景设置红色控件容易找怀疑控件哪:]