我需要更改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之外,还有其他方法可以做到这一点吗?
发布于 2011-09-13 18:13:34
永远不要使用这种黑客技术来修改内置的UIControls。将来,如果控件的实现在iOS的连续更新中发生变化,它们可能会停止工作。
如果你想用你自己的文本定制UISwitch,你可以在你的新文本中使用UISegmentedControl。例如,如果您想要获取用户的性别,而不是更改UISwitch的on和off标签文本,您可以使用带有两个项目“男性”和“女性”的分段控件。
发布于 2011-09-13 18:07:48
你没有说是哪个objectAtIndex:导致了崩溃,但无论如何,这都是没有意义的:UISwitch目前不允许定制标签。
发布于 2013-06-07 17:34:44
现在有了一个更好的解决方案。任何需要自定义开关的人都应该检查https://github.com/domesticcatsoftware/DCRoundSwitch
https://stackoverflow.com/questions/7400011
复制相似问题