我正在尝试创建一个带有白色边框的自定义视图,作为多个子视图的容器。
我可以通过在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用于所有内容,并且不记得很多关于以编程方式绘制视图,图层和诸如此类的东西。