我在全局设置所有UISegmentedControl的外观。但是我注意到,当我这样做时,它会打破禁用状态。
以下是我必须更改titleTextAttributes
的代码NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:
[UIFont boldSystemFontOfSize:12], UITextAttributeFont,
[UIColor whiteColor], UITextAttributeTextColor,
[UIColor colorWithRed:0x49/255.0 green:0x49/255.0 blue:0x49/255.0 alpha:1], UITextAttributeTextShadowColor,
[NSValue valueWithUIOffset:UIOffsetMake(0, -1)], UITextAttributeTextShadowOffset,
nil];
[[UISegmentedControl appearance] setTitleTextAttributes:attributes forState:UIControlStateNormal];
现在这很好用,所有分段控制器都会更新。
但是我使用setEnabled:forSegmentAtIndex:禁用的项目不再被禁用且可以点击。为什么会这样?如何让他们再次被禁用。我试图将它应用于禁用状态,但它不起作用。
[[UISegmentedControl appearance] setTitleTextAttributes:attributes forState:UIControlStateDisabled];
答案 0 :(得分:0)
看来,为UISegmentedControl设置全局外观并不是最好的方法,因为它不尊重UIControlStateDisabled。
我认为我必须使用UIControlStateDisabled,因为没有任何工作,但似乎直接设置背景有效。所以我最后制作了一个初始化背景的UISegmentedControlExtended类,现在setEnabled函数正常工作。