如何在iPhone上更改UISwitch上的文字?

时间:2011-09-13 10:01:42

标签: iphone ios4 uiswitch

我需要更改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之外,还有其他方法吗?

4 个答案:

答案 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