这是一个简单的示例自定义按钮,在IB中设置为按钮类:
#import "TestButton.h"
@implementation TestButton
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
UIFont * font = [UIFont systemFontOfSize:8];
if ( self.setFont )
self.titleLabel.font = font;
self.titleLabel.textColor = [UIColor redColor];
}
@end
如果setFont为false,即字体未更改,则标签文本颜色为预期的红色。但如果是,则按钮文本颜色是IB中设置的任何颜色。
所以问题是这里发生了什么,以及如何以编程方式更改IB中分配的按钮的文本和字体。
如果有人想要了解这些特性以及IBDesignable的质朴程度,请参阅demo project
答案 0 :(得分:0)
替换
self.titleLabel.textColor = [UIColor redColor];
带
[self setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
答案 1 :(得分:0)
以下代码用于设置文字:
[self setTitle:@"New Text" forState:UIControlStateNormal];
如果要将标题的标题或颜色设置在按钮文件本身以外的任何位置,则可以尝试向按钮添加两个公共属性。标题的一个NSString属性(self.titleString)和标题颜色的一个UIColor属性。然后,您可以在视图控制器或视图中的任何位置设置标题和/或标题颜色。然后,您将在按钮文件中使用这些属性,如
[self setTitle:self.titleString forState:UIControlStateNormal];