我应该使用子类或接口生成器创建自定义视图吗?

时间:2014-12-07 21:24:03

标签: ios objective-c user-interface interface-builder custom-view

我正在尝试创建一个带有白色边框的自定义视图,作为多个子视图的容器。

我可以通过在Interface Builder中添加UIView对象,并在User Defined Runtime Attributes中设置边框来创建它,但这不会在Interface Builder中呈现。

没关系,它甚至被认为是正常的,但今年引入了一个新属性:IB_DESIGNABLE。这允许在Interface Builder中实时呈现自定义视图,但需要创建子类,并在-(void)drawRect:(CGRect)rect中完成自定义绘图。

我想尝试使用此功能,但有什么理由不这样做吗?我听说drawRect不是一种表现友好的方法,为什么会这样?是否使用Interface Builder更改视图的外观以设置颜色,大小等属性比使用drawRect完成相同的操作更好?任何信息将不胜感激。

P.S。如何处理代码和IB之间的不同属性?例如,如果我将视图的帧设置为CGRectMake(0, 0, 100, 100),但在IB中将它的位置和大小设置为不同,哪个优先?另外, drawRect是设置边框颜色和宽度等属性的正确方法吗?对于看似基本的问题感到抱歉,我已经习惯了将Interface Builder用于所有内容,并且不记得很多关于以编程方式绘制视图,图层和诸如此类的东西。

0 个答案:

没有答案