iphone - UIButton setTitleColor :forState: question

标签 iphone objective-c cocoa-touch uikit

为什么下面的代码可以工作...

[signInBtn setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted];
[signInBtn setTitleColor:[UIColor blackColor] forState:UIControlStateDisabled];

虽然这不是?

[signInBtn setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted|UIControlStateDisabled];

最佳答案

我知道这是一个老问题,但这些答案并不正确。

当你分别设置每一个时,你说的是 state 属性应该是 UIControlStateHighlightedUIControlStateDisabled 但不能两者都是

当您按位或将它们放在一起时,您声明它们必须在 state 属性中设置。意思是 UIControlStateHighlightedUIControlStateDisabledstate 属性中设置。

下面的示例代码完美地说明了我的观点。如果您不同意,请自行运行。

[button setTitle:@"highlighted and selected" forState:UIControlStateHighlighted | UIControlStateSelected];
[button setTitle:@"Highlighted only" forState:UIControlStateHighlighted];
[button setTitle:@"Selected only" forState:UIControlStateSelected];
[button setTitle:@"Normal" forState:UIControlStateNormal];

NSLog(@"Normal title: %@", [[button titleLabel] text]); // prints title: Normal

[button setSelected:YES];

NSLog(@"Selected title: %@", [[button titleLabel] text]); // prints title: Selected only 

[button setSelected:NO];
[button setHighlighted:YES];

NSLog(@"highlighted title: %@", [[button titleLabel] text]); // prints title: Highlighted only

[button setSelected:YES];

NSLog(@"highlighted and selected title: %@", [[button titleLabel] text]); // prints title: highlighted and selected

关于iphone - UIButton setTitleColor :forState: question,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4370466/

相关文章:

objective-c - 什么时候需要子类化 UIViewController,什么时候可以实例化它?

objective-c - 我应该从 Apple 的 Core Data Utility 教程中获得什么值?

ios - 具有 "multiple"个代表的 UITextField

ios - 一个 View Controller 上的多个 View Controller

ios - Xcode 5.1 不能与 iPhone 7.1 设备一起使用?

iphone - 为什么这是一个无限循环?

iphone - 从导航 Controller 导航到普通 View Controller

objective-c - 隐式转换为NSIndexPath的错误

iphone - viewDidAppear 在同一个实例上调用两次,但仅在该类第一次从 NIB 加载时调用

iphone - 如何与obd ii elm327接口(interface)?