Comportement UISegmentedControl

voix
4

Une petite question sur la classe UISegmentedControl sur l'iPhone.

Si tout va bien, certains ont remarqué à quel point dans son état par défaut avec 2 segments, le contrôle segmenté toujours basculera même si l'utilisateur tape sur un segment qui est actuellement sélectionné.

Je l'ai vu UISegmentedControls dans les applications qui nient que le comportement et ne bascule pas lorsque l'utilisateur appuie sur un segment sélectionné. A savoir, iTune d'Apple Store.

Est-il un moyen simple d'éviter ce comportement que je donne sur, ou dois-je besoin d'écrire une certaine logique dans le valueChanged?

J'ai essayé de désactiver actuellement des segments sélectionnés et permettant les non sélectionnés, mais cela semble changer l'apparence du contrôle quand je ne veux pas faire.

Des idées?

Créé 11/03/2009 à 10:58
source utilisateur
Dans d'autres langues...                            


4 réponses

voix
8

Regardez dans le UISegmentedControl.h fichier d' en- tête (un moyen facile est de double - cliquer sur « UISegmentedControl » dans XCode Command enfoncée).

Là - dedans , vous verrez un certain nombre d'éléments dans un _segmentedControlFlags struct. Si vous faites une catégorie sur UISegmentedControl, vous pouvez manipuler l' un de ces éléments - y compris dontAlwaysToggleForTwoSegments qui , comme vous pouvez le deviner par le nom est ce que vous recherchez.

Comme il est documenté dans l'en-tête de l'API (mais pas dans la documentation réelle), il devrait être assez sûr à utiliser.

Créé 12/03/2009 à 00:23
source utilisateur

voix
4

Dans la version 3.0, « _segmentedControlFlags a été changé » à la « momentanée propriété », qui peut encore être trouvé dans le UISegmentedControl.h fichier d' en- tête.

Créé 20/07/2009 à 21:59
source utilisateur

voix
4

Ce comportement par défaut a été modifié dans l'API 3.0.

Créé 18/04/2009 à 03:20
source utilisateur

voix
1

Accès aux _segmentedControlFlags via une catégorie est considérée comme l'utilisation d'une API privée et donc une violation de l'accord de licence par Apple, que je devais apprendre aujourd'hui. Jusqu'à présent, je pensais que, les catégories sont une caractéristique de langue pour fixer quelqu'un d'autre horrible dessein de classe ...

Créé 09/12/2009 à 04:14
source utilisateur

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