如何在iPhone的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坠毁

除了制作自定义ui外,还有其他方法吗?

永远不要使用这种黑客技术来修改内置的uicontrol。在未来,如果控制的实施在iOS的连续更新中发生变化,它们可能会停止工作。

如果你想用你自己的文本自定义UISwitch,你可以用UISegmentedControl代替你的新文本。例如,如果你想获得用户的性别,而不是改变UISwitch的onoff标签文本,你可以使用分段控件和两个项目"Male"&"女性"。

您没有说哪个 objectAtIndex:导致崩溃,但是,在任何情况下,这是没有意义的:UISwitch目前不允许自定义标签。

现在有一个更好的解决方案。需要自定义开关的人应该查看https://github.com/domesticcatsoftware/DCRoundSwitch

另一个自定义UISwitch选项:https://github.com/alexnauda/ERScrollSwitch

最新更新