自定义控件的开发

如果想要自定义控件 需要先了解各个控件都是干什么用的 如果这个控件满足了你的需求 完全可以直接用 不要自定义 比如用UITableViewCell的时候 如果只是显示一行字 完全可以用原生的UITableViewCell 设定textLabel 

如果实在不能用原生的 那只能自己写了 一般看你要做的东西

  1. 如果线条很简单 或者对性能要求非常高 可以直接画出来 那就在drawRect方法里 
  2. 如果有界面比较规整 看起来就是 一个view 套着一个view的 就直接在init的时候创建了这些view。注意 如果要用interface builder 拖控件 一定要重写 initWithCoder 在这里frame也是设置好的 可以直接设置子view的frame 。如果控件的frame可以动态变更 可以有三种方法更改子view的frame:
  1. 直接设置autoresizingMask属性(在autoresizingMask里 上下左右是颠倒的)
  2. 重写setFrame函数 在里面设置子frame
  3. 重写drawRect 在里面设置frame


自定义的控件也是基于UIKit框架的,文档中说道UIKit的对象有三种用法

  1. Use the Interface Builder development application to drag windows, views, and other objects from an object library.也就是拉控件
  2. Create, position, and configure framework objects programmatically.用代码写控件,这应该是最常用的方法
  3. Implement custom user-interface objects by subclassing UIView or classes that inherit from UIView.继承UIView来自定义控件

所以想自定义控件就得继承UIView,然后重写- (void)drawRect:(CGRect)rect方法来绘制自己的控件。
其实UIKit里的所有的自带控件都是继承自NSObject->UIResponder->UIView的
 

猜你喜欢

转载自quding0308.iteye.com/blog/1911565