Utilisez iOS 6 Style Segmented Control dans iOS 7?
Est-il possible d'avoir une commande segmentée sur un iOS 7 dispositif de montrer que l'iOS 6 version du contrôle?
Nous ne sommes pas vraiment prêts pour une refonte de l'interface et la nouvelle plate de contrôle n'est pas jive avec le reste de notre INTERFACE utilisateur. Il serait certainement préférable de garder l'iOS 6 style pour l'instant, si possible.
De préciser, je suis à la compilation à l'aide de l'iOS 6.1 Base SDK. Je suis conscient que c'est "évident" réponse à ma question, mais il ne fonctionne pas. La plupart des autres éléments de l'INTERFACE utilisateur s'affiche avec iOS 6 style en faisant cela, mais comme le UIAlertView
et UIActionSheet
le UISegmentedControl
ne le fait pas. Cependant, contrairement à la UIAlertView
et UIActionSheet
UISegmentedControls
ne se sentent pas comme un "système"; ils devraient être en mesure d'afficher dans iOS 6 mode.
Edit: j'ai pensé qu'il serait utile que j'ai enfin compris une photo avec ce (probablement aurait dû le faire dès le départ). Cependant, la réponse que j'ai fournie n'a résoudre le problème. Aussi, avec le recul, il semble que ce pourrait être l'iOS 6 style après tout, c'est juste de l'affichage si mauvais qu'il apparaît comme iOS 7 style.
source d'informationauteur MikeS
Vous devez vous connecter pour publier un commentaire.
Que j'arrive à faire un bon travail de la résolution de ce problème par le réglage de tous les attributs manuellement, mais il n'est pas tout à fait parfaite.
C'est ce que j'ai fait:
De fixer les images attribuées à InterfaceBuilder utiliser ce code:
Je viens de tomber sur ce problème aujourd'hui, moi-même. L'application que je suis en train de travailler sur la mise à jour est assez ancien, et utilise encore xib fichiers, donc je ne sais pas si cela fonctionne sur des story-boards ou pas. Comme d'autres ont suggéré ci-dessus, vous devez toujours utiliser le SDK iOS 6.1, mais cela seul ne suffit pas. Après avoir effectué les étapes suivantes, j'ai été en mesure d'obtenir l'ancien
UISegmentedControl
apparence de retour:Je crois que c'est un bug, et je ne serais pas surpris s'il n'y a pas une solution de contournement pour
UISegmentedControl
instances créées dans le code. Je devine que c'est en quelque sorte liée à la dépréciation de lasegmentedControlStyle
propriété dans iOS 7 (voir https://developer.apple.com/library/ios/documentation/uikit/reference/UISegmentedControl_Class/DeprecationAppendix/AppendixADeprecatedAPI.html#//apple_ref/occ/instp/UISegmentedControl/segmentedControlStyle).Espère que cela aide quelqu'un là-bas.
Si vous enregistrez le iPhoneOS6.1.sdk fichier de la précédente version de XCode et l'ajouter à Xcode 5 dans le même chemin d'accès que vous pouvez ensuite créer une application à l'encontre de l'6.1 SDK de sorte que lorsqu'il s'exécute sur 7, tout est comme 6. Reliant contre iOS7 SDK raconte iOS pour faire de tout, ressemblent à iOS7 si possible. Essentiellement, alors vous avez un iOS6 l'app, mais construire avec XCode 5.
Si vous utilisez des images sur l'un de vos UISegmentedControl segments, vous aurez besoin d'ajouter un peu de code pour la mettre correctement sur iOS 7, sinon, ils vont être utilisés comme un modèle de l'image et du segment sélectionné sera un découpage du segment de l'arrière-plan.
UISegmentedControl sous iOS 7 interprète ses images comme dans le mode de rendu UIImageRenderingModeAlwaysTemplate à moins d'indication contraire. J'ai eu à utiliser -[UIImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] sur chaque segment de l'image pour iOS 7 pour atteindre le comportement précédent.
Vous pouvez soit:
Est-il possible? Pas vraiment...
Vous pourriez faire votre propre personnalisé sectorielle de contrôle.
Ou vous pouvez utiliser la
UIAppearance
proxy pour personnaliser votre commande segmentée avec des images, mais alors il est de votre responsabilité de le faire paraître comme il était sur iOS 6.Oui, c'est possible si vous recréez le contrôle de votre propre. Créer un faux sectorielle de contrôle qui ressemble à et de travailler comme un.
Dans mon application, j'ai mis la commande Segmentée à la "Barre" de style. Il rend en ios6 style ios7 sur mon iphone5 (whoa, 5,6,7). Cependant, le texte à l'intérieur des segments de coupe et de prendre les trois points"...", a ajouté, peu importe la façon dont l'échelle de la vue.
Si l'ios6 sectorielle de contrôle de rendu dans ios7 semble vraiment buggy