我正在开发ios 6的应用程序。这是一种表单设计应用程序,我发现如果我们在应用程序中更改titlelabel.textColor
某个点,那么如果我们更改字体,则textColor会在分配时更改为默认值。
我在下面检查了这个
我将一个示例按钮拖到我的示例viewcontroller中,并在viewcontroller.h文件中创建一个名为myButton
的IBOutlet属性
in -viewDidLoad
[myButton.titleLabel setTextColor:[UIColor redColor]];
并在按钮操作中我确实喜欢下面
- (IBAction)btnLoginClicke:(UIButton *)sender {
[myButton.titleLabel setFont:[UIFont fontWithName:@"Arial" size:18]];
下面是我的前后按钮点击动作截图
答案 0 :(得分:5)
如果要将应用程序中的所有按钮保持为相似的颜色,那么最好选择全局外观设置。然后你不必担心所有地方的按钮标题颜色。
将这些行放在appDelegate
方法的didFinishLaunchWithOptions
中。
[[UIButton appearance] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[[UIButton appearance] setTitleColor:[UIColor greenColor] forState:UIControlStateHighlighted];
希望有所帮助。
答案 1 :(得分:1)
如果您使用以下方式设置UIButton标题的颜色:
[myButton setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
分配新字体时,颜色信息不会丢失。
我认为这是因为UIButton类根据您使用setTitleColor(或故事板)为不同UIButton状态设置的不同颜色在内部设置textLabel的颜色。直接更改textLabel的颜色不会更改UIButton为每个状态存储的颜色,并且每次UIButton需要重绘时都会重新应用它们。设置新字体时会发生这种情况 - UIButton必须重绘自己,但它会通过setTitleColor:forState:。
使用颜色设置来完成。