【发布时间】:2015-01-24 17:44:41
【问题描述】:
我有一个需求,我需要更改 UIComponent,如 UIButton、UIView 和 UITextField。我需要做的只是将边框的半径更改为圆形而不是默认的锐角矩形。
我这样做的方法是将 UIView 子类化为 UIViewRoundCorner,UIButton 子类化为 UIButtonRoundCorner,UITextField 子类化为 UITextFieldRoundCorner,并且在我拥有的每个子类中用这个覆盖了drawRect方法:
- (void)drawRect:(CGRect)rect {
// Drawing code
CALayer *layer = [self layer];
[layer setMasksToBounds:YES];
[layer setCornerRadius:3.0f];
[layer setBorderWidth:1.0f];
}
代码是多余的,我正试图弄清楚如何删除这种冗余。由于所有这些元素都是从 UIView 继承的,是否有可能以某种方式继承 UIView 并在所有其他视图中实现?
【问题讨论】:
-
仅供参考 - 使用
drawRect:调整图层不是正确的做法。drawRect:可以在控件的生命周期内多次调用,但您只需调整层一次。以适当的init...方法执行此操作。 -
感谢您的建议 :)。我会马上实施。
标签: ios objective-c uiview uibutton