我需要更改UISwitch上的文本,为此我尝试了以下代码,
((UILabel *)[[[[[[_agreeAgb subviews] lastObject] subviews] objectAtIndex:2] subviews] objectAtIndex:0]).text = @"Foo";
((UILabel *)[[[[[[_agreeAgb subviews] lastObject] subviews] objectAtIndex:2] subviews] objectAtIndex:1]).text = @"Bar";
但它在objectAtIndex
除了制作定制的UISwitch之外,还有其他方法吗?
答案 0 :(得分:6)
永远不要使用此类黑客技术来修改内置的UIControl。将来,如果控件的实现在iOS的连续更新中发生变化,它们可能会停止工作。
如果您想使用自己的文字自定义UISwitch
,则可以使用UISegmentedControl
和新文本。例如,如果您想获取用户的性别,而不是更改UISwitch的 on 和 off 标签文本,则可以使用分段控制有两个项目“男性”& “女性”。
答案 1 :(得分:0)
你没有说哪个 objectAtIndex:
导致崩溃,但是,无论如何,它没有实际意义:UISwitch
目前不允许自定义标签。< / p>
答案 2 :(得分:0)
现在有一个更好的解决方案。任何需要自定义切换的人都应该检查https://github.com/domesticcatsoftware/DCRoundSwitch
答案 3 :(得分:0)
自定义UISwitch的另一个选项:https://github.com/alexnauda/ERScrollSwitch