我需要改变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的on和off标签文本,你可以使用分段控件和两个项目"Male"&"女性"。
您没有说哪个 objectAtIndex:
导致崩溃,但是,在任何情况下,这是没有意义的:UISwitch
目前不允许自定义标签。
现在有一个更好的解决方案。需要自定义开关的人应该查看https://github.com/domesticcatsoftware/DCRoundSwitch
另一个自定义UISwitch选项:https://github.com/alexnauda/ERScrollSwitch