Как изменить текст на UISwitch в iPhone? - PullRequest
1 голос
/ 13 сентября 2011

Мне нужно изменить текст на 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 ]

6 голосов
/ 13 сентября 2011

Никогда не используйте такие методы взлома для изменения встроенных UIControls.В будущем они могут перестать работать в случае изменения реализации элементов управления в последующих обновлениях iOS.

Если вы хотите настроить UISwitch с вашим собственным текстом, вы можете вместо этого использовать UISegmentedControlс вашими новыми текстами.Например, если вы хотите получить пол пользователя, вместо того, чтобы изменять UISwitch на и off текст меток, вы можете использовать сегментированное управление с двумяпредметы "Мужской" и "Женский".

0 голосов
/ 25 сентября 2013

Еще одна опция для пользовательского переключателя UIS: https://github.com/alexnauda/ERScrollSwitch

0 голосов
/ 07 июня 2013

Теперь есть лучшее решение для этого.Любой, кому нужен пользовательский переключатель, должен проверить https://github.com/domesticcatsoftware/DCRoundSwitch

0 голосов
/ 13 сентября 2011

Вы не говорите , что objectAtIndex: вызывает сбой, но, в любом случае, это спорный вопрос: UISwitch в настоящее время не позволяет настраивать метки.

...