我想创建一个自定义按钮,如果我没有为按钮设置任何颜色,这将帮助我将所有按钮背景颜色更改为默认红色。
所以我喜欢这个并且运作良好
我有
@interface ITSButton : UIButton
@property(nonatomic, strong) UIColor *backgroundColor;
@property(nonatomic, strong) UIColor *onPressBackgroundColor;
@end
<。> in .m fie
-(UIColor *)backgroundColor
{
if(!_backgroundColor){
_backgroundColor = [UIColor redColor];
}
return _backgroundColor;
}
但此处backgroundColor
的问题已经是UIButton
类的属性。如果我在ITSButton
中覆盖它,它是否良好且清晰?
如果我不覆盖backgroundColor
属性,我就无法使用函数(UIColor *)backgroundColor
,因此我无法将默认背景设置为红色
答案 0 :(得分:1)
如果我不覆盖
myRDD.repartition(50).map(t -> ObjectMapperFactory.OBJECT_MAPPER_MIXIN.writeValueAsString(t)) .saveAsTextFile(outputPath, GzipCodec.class);
属性,我就无法使用函数backgroundColor
,因此我无法将默认背景设置为红色
是的,你可以,我认为实现这一点可能是你进退两难的关键。只留下(UIColor*)backgroundColor
!它有一项重要的工作要做。相反,实现子类的初始值设定项,将设置此按钮的背景颜色设置为红色。您应该为所有可能的初始化器执行此操作;最有可能的是backgroundColor
和initWithFrame:
。
结果是这个类的所有按钮,以及这个类的任何子类的所有按钮,默认情况下都是红色 ,这就是你想要的。要更改它,您只需设置按钮的背景颜色,就像现在使用任何按钮一样。
如果您还不知道有关如何执行该规则的规则,请不要忘记阅读有关如何覆盖子类中的初始值设定项的文档。