UISegmentedControl Поведение

голоса
4

Быстрый вопрос о классе UISegmentedControl на iPhone.

Будем надеяться, что некоторые, возможно, заметили, как в состоянии по умолчанию с 2-х сегментов, сегментированный управления по-прежнему будет переключать даже если пользователь нажимает на сегменте, который выбран в данный момент.

Я видел UISegmentedControls в приложениях, которые отрицают, что поведение и не срабатывают, когда пользователь нажимает на выбранный сегмент. А именно, iTune магазин приложений Apple.

Есть простой способ предотвратить такое поведение, что я с видом, или мне нужно написать какую-то логику в ValueChanged?

Я пытался отключить выбранные сегменты и позволяет невыбранные те, но это, кажется, чтобы изменить внешний вид контроля, когда я не хочу это делать.

Есть идеи?

Задан 11/03/2009 в 10:58
источник пользователем
На других языках...                            


4 ответов

голоса
8

Посмотрите в UISegmentedControl.h заголовочный файл (простой способ это сделать двойной щелчок на «UISegmentedControl» в XCode с Command удерживается в нажатом положении ).

В там вы увидите количество элементов в _segmentedControlFlags структуры. Если вы сделаете категорию на UISegmentedControl, вы можете управлять любой из этих элементов - включая dontAlwaysToggleForTwoSegments , которые , как вы могли догадаться по имени является то , что вы ищете.

Так как это описано в заголовке API (хотя и не в фактической документации) оно должно быть довольно безопасно использовать.

Ответил 12/03/2009 в 00:23
источник пользователем

голоса
4

В 3.0, « _segmentedControlFlags » было изменено на « мгновенном » имущество, которое до сих пор можно найти в UISegmentedControl.h заголовочном файле.

Ответил 20/07/2009 в 21:59
источник пользователем

голоса
4

Это поведение по умолчанию было изменено в 3.0 API.

Ответил 18/04/2009 в 03:20
источник пользователем

голоса
1

Доступ к _segmentedControlFlags через категорию рассматриваются как использование личного API и, таким образом, является нарушением лицензионного соглашения по Apple, как я должен был узнать сегодня. До сих пор я думал, Категория не является особенностью языка, чтобы исправить чей-нибудь ужасный дизайн класса ...

Ответил 09/12/2009 в 04:14
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more