Banner Top

lundi 6 août 2012

Les graines d'Apple iOS 6 beta 4 pour les développeurs: Voici le changelog

records IOS chronicle du SDK flow iOS 6 beta 4

Important: Ceci est un request préliminaire flow une API ou de la technologie dans le développement. Bien que ce request the été examiné flow la précision technique, il n’est pas définitif. Cette report confidentielle d’Apple est à utiliser seulement standard les membres inscrits du programme Apple Developer applicable. Apple est de fournir cette report confidentielle à vous aider à planifier l’adoption des technologies et des interfaces de programmation décrits ci-après. Cette report est sujette à changement, et les logiciels mis en œuvre en fonction de ce request doit être testé avec le logiciel du système d’exploitation last et la support finale. Les nouvelles versions de ce request ne peut être fourni avec des graines de futures de l’API ou de la technologie.

Introduction

Avec ce logiciel vous pouvez développer des applications flow iPhone, iPad, ou iPod hold avec iOS 6. Vous pouvez également tester vos applications en utilisant l’iOS inclus Simulator, qui prend en assign iOS 6. iOS SDK 6.0 requiert un ordinateur Mac sous OS X 10.7.4 ou supérieur (Lion).

Cette chronicle de l’IOS est destiné à être installé uniquement sur des appareils enregistrés auprès Developer Program d’Apple. Tentative d’installation de cette chronicle d’iOS de manière non autorisée pourrait mettre votre appareil dans un état inutilisable.

Pour and d’informations et de ressources de soutien supplémentaires, visitez le site http://developer.apple.com/programs/ios/ .

Bug Reporting

Notes

et problèmes connus

Les questions suivantes ont trait à l’aide iOS SDK 6.0 flow développer du code.

Comptes-cadre
Toute demande d’accès à des comptes Facebook, la seule clé nécessaire dans votre dictionnaire options est ACFacebookAppIdKey.ACFacebookPermissionGroupKey et ACFacebookAppVersionKey sont désormais obsolètes.
Si vous demandez une écriture autorisation en vertu ACFacebookPermissionsKey, comme publish_stream, vous devez fournir une valeur flow ACFacebookAudienceKey, qui peut être l’un des ACFacebookAudienceEveryone, ACFacebookAudienceFriends, ou ACFacebookAudienceOnlyMe

Carnet d’adresses


FIXE:. Lorsque une focus est dans un endroit frais strive privée et l’Etat essaie de présenter un ABNewPersonViewController, l’utilisateur ne peut pas rejeter cette contrôleur de vue correctement, même si l’utilisateur autorise l’accès aux contacts. L’utilisateur doit forcer à quitter l’application et relancer
Demande d’accès à des contacts:.
Utilisateurs sont en mesure d’accorder ou de refuser l’accès aux données de hit sur une bottom par-app. Pour demander l’accès aux données de contact, appeler la fonction theABAddressBookRequestAccessWithCompletion après l’appel de la fonction ABAddressBookCreateWithOptions. Fonction TheABAddressBookRequestAccessWithCompletion ne bloque pas l’application lorsque l’utilisateur est invité à accorder ou refuser l’accès. Jusqu’à l’accès the été accordé, l’objet ABAddressBookRef ne contiendra pas de contacts, et toute indeterminate de modifier les contacts échoue avec l’erreur akABOperationNotPermittedByUserError. L’utilisateur est invité seulement la première fois l’accès est demandé; les appels ultérieurs toABAddressBookCreateWithOptions utilisera les autorisations existantes. Le gestionnaire d’achèvement est appelée sur une record d’attente arbitraire. Si l’objet est utilisé surveillance au prolonged theABAddressBookRef l’application, puis tous les usages doivent être expédiés à la même record d’attente à utiliser ABAddressBookRef d’une manière thread-safe
Vérification de l’état d’autorisation d’accès:.
Une focus peut utiliser l’API statut de l’autorisation flow vérifier si elle peut accéder à des contacts, des calendriers, des rappels, ou à la bibliothèque photo. Cette API est indépendant de l’API de demande d’accès et n’invite pas l’utilisateur d’accorder ou de refuser l’accès. Avec cette API d’une focus peut régler l’affichage de ses éléments d’interface utilisateur qui accèdent à la classe de données. Par exemple, si l’accès aux contacts est autorisé ou non déterminée, puis un bouton d’interface utilisateur de choisir un hit peut être affiché.
Pour le carnet d’adresses, appelez la fonction ABAddressBookGetAuthorizationStatus. Pour Kit événement, appelez la authorizationStatusForEntityType: méthode de la classe de EKEventStore. Pour Bibliothèque actifs, appelez la méthode de classe authorizationStatus de ALAssetsLibrary. Le sens des valeurs d’état qui sont retournés se présente comme suit:
statut d’autorisation indéterminésupérieure L’utilisateur n’a pas encore fait un choix quant à savoir si cette focus peut accéder à la classe des données
Statut autorisation restreinte-Ce soft. n’est pas autorisé à accéder à la classe de données. L’utilisateur ne peut pas changer le statut de cette application, peut-actifs en raison de restrictions telles que les contrôles parentaux sont en place.
Statut refus d’autorisation: l’utilisateur explicitement refusé l’accès à la classe de données de cette application.
Statut de l’autorisation autorisé- . Ce soothing est autorisé à accéder à la classe de données
Apple TV
FIXE: Dans certains cas, l’écran peut afficher la résolution tort. . Redémarrez votre Apple TV flow le ramener à la résolution correcte
FIXE: Apple TV peut redémarrer en utilisant l’application Remote
FIXE:. Apple TV peut redémarrer lorsque vous changez la langue du système
FIXE.: Galerie photos ne se assign pas lorsque vous vous connectez dans un second temps. Redémarrez votre Apple TV à résoudre.
Musique ne joue pas compare les diaporamas photo.
Économiseur d’écran peut revenir à l’utilisation des images standard défaut après l’installation de mise à jour.
Bonjour
La classe NSNetService et CFNetService API ne comprennent pas les interfaces P2P standard défaut. Pour voir, inscrivez-vous, ou de résoudre des services sur les interfaces P2P, une focus the besoin d’utiliser le programme Bonjour DNSService * () API ci-dessous.
Si le paramètre InterfaceIndex à kDNSServiceInterfaceIndexAny dans les API suivantes ne seront pas inclure des interfaces P2P standard défaut. Pour inclure des interfaces P2P, vous devez maintenant définir l’indicateur kDNSServiceFlagsIncludeP2P lors de l’utilisation kDNSServiceInterfaceIndexAny ou de définir la tokDNSServiceInterfaceIndexP2P InterfaceIndex. Les API touchée Il ya un problème connu avec les dictionnaires lors de la indeterminate de définir un mot dans une autre langue que l’anglais ou le japonais. Lorsque la bibliothèque de référence est présentée, l’utilisateur the la possibilité de télécharger un dictionnaire-que le téléchargement ne peut commencer. L’utilisateur peut exploiter en dehors de la popover sur un iPad ou appuyez sur le bouton Terminé sur l’iPhone ou l’iPod hold de rejeter la demande de téléchargement
Event Kit
Demande d’accès à des calendriers ou des rappels:.
Utilisateurs sont en mesure d’accorder ou de refuser l’accès à des données d’événement et un rappel sur une bottom par-app. Pour demander l’accès à des données d’événement et / ou un rappel, appelez therequestAccessToEntityType: achèvement :: méthode de EKEventStore. Ce ne sera pas bloquer l’application compare que l’utilisateur est invité à accorder ou refuser l’accès. Jusqu’à l’accès the été accordé flow un sort d’entité, le magasin d’événements ne contient pas tous les calendriers flow ce sort d’entité et toute indeterminate visant à sauvegarder les données échouera
L’utilisateur sera invité seulement la première fois l’accès est demandé;. Toute alteration ultérieure instanciations de EKEventStore utilisera les autorisations existantes. . Le gestionnaire d’achèvement est appelée sur une record d’attente arbitraire
Game Center
FIXE: Lorsque vous créez un compte de jeu nouveau Centre en focus sur l’iPad, l’popover flow la sélection du mois de votre date de naissance se présente avec aucun contenu à sélectionner.
Procédé authentifier des GKLocalPlayer the été enlevé. Authentification débutera automatiquement lorsque le gestionnaire d’achèvement est fixée.
Comme d’iOS 6 beta 4, GKGameCenterViewController article n’est and supporté.
Comme d’iOS 6 beta 4, GKScore + fichier Sharing.h et la catégorie associée sont retiré.
icloud
Lors de la création d’un compte icloud, vous pouvez utiliser n’importe quel e-mail ID basée sur Apple ou votre compte existant icloud. Si vous aviez un compte MobileMe que vous n’avez pas passer à icloud, vous pouvez utiliser cet ID d’Apple flow vous inscrire à un nouveau compte icloud (aucune de vos données MobileMe précédentes seront présents).
Icloud.com adresses e-mail sont maintenant disponible flow les utilisateurs de messagerie icloud. Les utilisateurs de signer flow le nouvel Apple ID, ou permettant Mail sur leur compte icloud flow la première fois, recevront automatiquement an@icloud.com adresse e-mail au lieu d’une adresse e-mail me.com. utilisateurs icloud with@me.com~~V adresses qui ont été utilisés avec iOS 6 beta 3 ou and tard recevront l’adresse email an@icloud.com qui conform à l’adresse their@me.com.
email icloud.com ne peut pas être envoyé à partir de www . icloud.com. Les utilisateurs doivent utiliser http://beta.icloud.com à ce moment, s’ils le souhaitent d’utiliser un navigateur Web flow envoyer des courriels à partir de leur adresse icloud.com.
@ Adresses icloud.com seront ajoutés dans les deux semaines de la première en utilisant iOS 6.
Provisioning profils doit être activé flow icloud dans le Portail iOS Provisioning. Pour activer un profil d’approvisionnement flow icloud, accédez à la territory ID App du Portail iOS Provisioning et configurer votre ID App flow icloud. Après avoir activé l’ID App flow icloud, régénérer vos profils d’approvisionnement afin de leur permettre d’icloud
Les setSortDescriptors:.. Méthode de NSMetadataQuery n’est pas supporté
Dans iOS 6, les fichiers qui sont protégés standard la insurance des données ne peut pas être utilisé avec icloud de stockage API.
noms de fichiers sont insensibles à la casse dans OS X, mais essential à la casse dans iOS. Cela peut conduire à des problèmes lors de l’utilisation icloud de partager des fichiers entre les deux plates-formes. Sur iOS, vous devriez prendre des mesures flow éviter de créer des fichiers avec des noms qui diffèrent uniquement standard la casse
Le comportement de coordonnées les opérations de harangue sur les papers icloud the changé:.
Le précédent communiqués de iOS, lorsque votre focus the effectué une coordonnée opération de harangue sur un fichier ou de l’emballage et le démon icloud remarqué qu’il y avait une chronicle and récente de l’élément disponible, l’opération de harangue coordonnée bloqué jusqu’à ce que la nouvelle chronicle de l’article the été téléchargé et écrites sur le disque.

Comme d’iOS 6 beta 3, lorsque vous démarrez une approche coordonnée opération de harangue sur un fichier ou package flow lequel vous avez déjà une chronicle locale, la harangue coordonnée sera accordée dès que possible, et la nouvelle version, le cas échéant, sera téléchargé dans l’arrière-plan. Cet appel permet de bloquer flow le téléchargement des raisons uniquement si vous n’avez pas n’importe quelle chronicle de ce fichier à showing sur place.

En outre, lorsque le fichier est en conflit, le démon icloud ne sera pas attendre jusqu’à ce qu’il draw up de tous les perdants de conflit de le fichier disponible flow rendre le fichier disponible flow votre application. Elle rendra les différentes versions du fichier en conflit à showing dès que possible. Votre focus peut utiliser le fichier existant et la coordination des rappels theUIDocument être notifiés lorsque les perdants de conflit ont été téléchargées et sont disponibles.

iTunes iTunes 10.6.3


est nécessaire flow iOS SDK 6.0.
précédentes versions bêta publiques de iOS ne peut and télécharger iTunes compare chansons
Lieu
Dans iOS 6 beta 4, des modifications ont été introduites à la nouvelle CLActivityType enum dans Core Location:
Remplacer CLActivityTypeVehicularNavigation avec CLActivityTypeAutomotiveNavigation .
Ajouter CLActivityTypeOtherNavigation flow autres véhicules, standard exemple la navigation, les bateaux, trains, avions ou.
Cartes
Dans iOS 6 et and tard, la grant Kit est construit sur une nouvelle infrastructure hébergée standard Apple. Les versions antérieures IOS continuera à utiliser le use de Google.
Compatibilité de l’API sera maintenu (voir les problèmes connus ci-dessous).
Les cartes sont désormais pris en assign Simulator.
Données cartographiques vont continuer à évoluer seule une quantité limitée de haute résolution des images satellites est actuellement disponible.
routage applications qui ne spécifient pas un fichier de couverture au cours du développement sera toujours affichée dans les cartes de routage des résultats de recherche.
tests et le débogage des fichiers de couverture flow le routage applications est uniquement pris en assign au cours du développement standard l’intermédiaire du motion de childbirth Run Xcode. (Vous pouvez spécifier le fichier de couverture d’un régime d’exécution donnée en utilisant le volet Options de la territory Run de l’éditeur de schéma.) Apps qui sont archivés et distribués (en dehors de l’App Store) sur des appareils n’auront pas accès aux fichiers de couverture de l’APP .
FIXE:. Cartes ne wizz sur l’emplacement actuel lors de son lancement à partir d’une focus tierce
kiosque
FIXE: Seuls les simples téléchargements HTTP travaillera avec kiosque
livret <. br /> Le champ Description est maintenant un champ obligatoire flow un laissez-passer. . Tout passe créé sans qu’il ne parviendra pas à valider et ne sera pas ingérer
livret dans Flight Simulator ne nécessite and HTTPS / SSL lorsque vous utilisez un webServiceURL lorsque l’ingestion d’une passe
FIXE:. Impossible d’afficher les cartes d’embarquement à l’écran de verrouillage .
laissez-passer ne sera and revenir à background.png si strip.png n’est pas inclus dans votre forfait passe.
Le contenu du dictionnaire userInfo flow PKPassLibraryDidChangeNotification ont changé dans le cas de passages supprimés. S’il vous plaît consulter la dernière support flow le nouveau dictionnaire userInfo.
Sécurité
Dans iOS 5, la signature d’un certificat avec une signature MD5 n’est pas supporté. S’il vous plaît s’assurer que les certificats utilisent des algorithmes de signature basée sur SHA1 ou SHA2.
Dans iOS 6, il ya des contrôles de confidentialité améliorées flow Calendrier, rappels, les contacts et les photos.
Utilisateurs voient les informations de l’accès quand une focus tente de accéder à l’un de ces sorts de données. L’utilisateur peut basculer d’accès sur et en dehors dans les Paramètres de confidentialité>.
Les développeurs peuvent définir un «but» de chaîne flow chaque catégorie de données isolées. iOS affiche cette chaîne aux utilisateurs flow les aider à comprendre pourquoi leurs données sont demandées. Ces chaînes peuvent être ajoutés en utilisant l’éditeur de projet Xcode, qui est dans l’onglet Infos. Les noms clés pertinents commencent standard la chaîne «Vie privée -” Il ya
modifications apportées à la trousse de l’événement et les cadres du carnet d’adresses flow aider les développeurs avec cette fonctionnalité
Simulator
FIXE:.. La acknowledgment de termination app panneau d’alerte prend un sure temps à apparaître dans iOS Simulator.
Aucune alerte à la strive privée sont affichés dans iOS Simulator flow les applications qui Photos d’accès, Contacts, Calendrier et des rappels.
téléchargement sur l’App-Purchase contenu hébergé dans iOS Simulateur n’est pas supporté.
Lorsque vous tentez de lire un son MP3 en Simulator, vous entendrez un gossip sec à la place.
Galerie photos partagées
Les utilisateurs doivent aller dans Paramètres> icloud afin de s’assurer qu’ils . recevoir partagés Notifications de motion photos
Afin de partager un motion de photos avec iOS 6 beta, vous devez inviter quelqu’un en utilisant son adresse e-mail icloud, sinon, il ne recevra pas l’invitation
Mise à niveau de iOS 6 beta. 1 à beta 2 fera de votre appareil flow télécharger à nouveau l’ensemble de vos motion de photos partagées.
La fonction print partagée Stream est réglé sur OFF lorsque la mise à jour de iOS 6 beta 1 à une chronicle ultérieure. Le réglage standard défaut doit être allumé
FIXE:.. Désactivation Streams photos partagées peut laisser la caméra dans un état qui ne répond pas, la force de quitter l’application Appareil print de résoudre ce problème amicable

Weibo apparaît dans la . Paramètres app seulement si un clavier chinois est activée
Le requestAccessToAccountsWithType: withCompletionHandler: méthode de ACAccountStore est maintenant obsolète. Pour accéder à des comptes d’utilisateurs, s’il vous plaît utiliser le requestAccessToAccountsWithType: options: la fin:. Méthode
Dans le paramètre options de cette nouvelle méthode, passer de zéro à accéder à Twitter et les comptes Weibo. Pour accéder à des comptes Facebook, passer un dictionnaire avec les touches suivantes (qui sont documentés dans ACAccountStore.h):

ACFacebookAppIdKey


ACFacebookPermissionsKey
Vous ne devriez and ajouter ce dictionnaire à la fiche de votre focus . plist fichier, comme cela the été nécessaire en chronicle bêta 1.
Toute demande d’accès à des comptes Facebook, la seule clé nécessaire dans votre dictionnaire options est ACFacebookAppIdKey.ACFacebookPermissionGroupKey et ACFacebookAppVersionKey sont désormais obsolètes.
Si vous demandez une autorisation d’écriture sous-ACFacebookPermissionsKey comme publish_stream-vous devez fournir une valeur flow ACFacebookAudienceKey, qui peut être l’un des ACFacebookAudienceEveryone, ACFacebookAudienceFriends, ou ACFacebookAudienceOnlyMe.

Barre d’état


Il est maintenant probable de définir les paramètres barre d’état teinte dans le fichier Info.plist de votre application. Vous pouvez le faire flow s’assurer que la couleur de la barre d’état conform à la couleur de votre focus barre de navigation compare le démarrage. Pour définir la teinte barre d’état, ajouter les UIStatusBarTintParameters clés à votre fichier Info.plist. La valeur de cette clé est un dictionnaire avec les valeurs appropriées décrivant la barre de navigation de votre focus the au démarrage. À l’intérieur du dictionnaire doit être la clé UINavigationBar, qui the une valeur qui est aussi un dictionnaire. Ce dictionnaire contient le character de la barre initiale de navigation (avec la touche de style) et si elle est translucide (avec la touche translucide). Si votre barre de navigation les utilise, vous pouvez également spécifier la couleur de teinte (avec la touche tintColor) ou le nom de son picture de lustful personnalisée (avec la touche BackgroundImage).
UIKit
Dans iOS 5.1, le UISplitViewController classe adopte le character de présentation coulissantes lors de la présentation de la vue de tactless (vu précédemment que dans Mail). Ce character est utilisé lorsque la présentation est engagée soit standard la poste bouton de la barre existante fournie standard les méthodes délégué ou standard un geste de balayage dans la vue de droite. Pas d’adoption API supplémentaire est nécessaire flow obtenir ce comportement, et toutes les API, y compris celui de l’existant standard exemple UIPopoverController fournies standard le délégué continuera à fonctionner comme avant. Si le geste serait insupportable dans votre application, en définissant la propriété presentsWithGesture de votre contrôleur de vue fractionnée de NO désactive le geste. Cependant, la désactivation du geste est déconseillée en raison de son utilization préserve une expérience utilisateur cohérente à travers toutes les applications
FIXE:. Dans iOS 6, des modifications ont été introduites afin que vous n’avez and besoin de définir un délégué et mettre en œuvre une méthode de simple- Finger et la elementary pression de reconnoitering gestuelle. Cela les splinter bien travailler avec les objets uicontrol.
Dans iOS 6 et and tard, la classe UIWebView peint son contenu de façon asynchrone.
Autorotation évolue dans iOS 6. Dans iOS 6, le shouldAutorotateToInterfaceOrientation: méthode de UIViewController est obsolète. A sa place, vous devez utiliser le supportedInterfaceOrientationsForWindow: et les méthodes shouldAutorotate
Plus la responsabilité est de passer à l’application et le délégué app.. Maintenant, iOS conteneurs (tels que UINavigationController) ne consultent pas leurs enfants flow déterminer si elles devraient en autorotation. Par défaut, une focus et les orientations d’un contrôleur de vue interface prises en assign sont fixées toUIInterfaceOrientationMaskAll flow l’idiome iPad et UIInterfaceOrientationMaskAllButUpsideDown flow l’idiome iPhone.
Orientations un contrôleur de vue de l’interface pris en assign peuvent changer au fil du temps, même les orientations d’une focus d’interface de assign peuvent changer au fil du le temps. Le système demande au contrôleur de vue de and haut niveau en plein écran (généralement le contrôleur vue racine) flow ses orientations d’interface pris en assign chaque fois que le dispositif tourne ou quand un contrôleur de vue est présenté avec le character plein écran modale présentation. En outre, les orientations prises en assign sont récupérés que si ce contrôleur de vue renvoie OUI à partir de sa méthode shouldAutorotate. Le système de coupe orientations prises en assign du contrôleur vue avec les orientations prises en assign de l’APP (tel que déterminé standard le fichier Info.plist ou le delegate’sapplication app: supportedInterfaceOrientationsForWindow: méthode). Afin de déterminer s’il ya lieu de tourner
Le système détermine si une course est pris en assign standard l’intersection de la valeur retournée standard la app’ssupportedInterfaceOrientationsForWindow:. méthode de la valeur retournée standard la méthode supportedInterfaceOrientations du contrôleur le and en haut en plein écran
Le setStatusBarOrientation: animation: la méthode n’est pas obsolète pristine et simple. Cependant, il fonctionne à présent uniquement si la méthode thesupportedInterfaceOrientations du contrôleur vue de and haut niveau en plein écran retourne 0. . Cela met la responsabilité de veiller à ce que l’orientation de la barre d’état est concordant entre les mains de l’appelant
Pour la compatibilité, voir les contrôleurs qui reste la mise en œuvre de la shouldAutorotateToInterfaceOrientation: méthode ne reçoivent pas les comportements d’autorotation nouvelles. (En d’autres termes, ils ne retombent pas à l’utilisation de l’application, délégué app, ou le fichier Info.plist afin de déterminer les orientations prises en charge.) Au lieu de cela, le shouldAutorotateToInterfaceOrientation: méthode est utilisée flow synthétiser l’information qui aurait été retourné standard la méthode thesupportedInterfaceOrientations.
Le willRotateToInterfaceOrientation: durée:, willAnimateRotationToInterfaceOrientation: durée:, anddidRotateFromInterfaceOrientation: méthodes ne sont and appelée sur n’importe quel contrôleur de vue qui fait une présentation en plein écran sur lui-même, standard exemple, en appelant presentViewController: animation: réalisation:.
Vous devez vous assurer que vos applications ne sont pas l’utilisation de ces méthodes flow gérer la showing de tous les sous-vues. Au lieu de cela, ils doivent utiliser la méthode vue controller’sviewWillLayoutSubviews et ajuster la mise en page en utilisant un rectangle de la vue des bornes.
Dans iOS 6, les méthodes et viewWillUnload viewDidUnload de UIViewController sont maintenant obsolètes. Si vous utilisez ces méthodes flow diffuser les données, utilisez la méthode didReceiveMemoryWarning lieu. Vous pouvez également utiliser cette méthode flow libérer les références à la vue du contrôleur de vue si celui-ci n’est pas utilisé. Vous auriez besoin de vérifier que la vue n’est pas dans une fenêtre avant de faire cela.
Il est pris en assign de définir des valeurs flow la shadowOffset ou les propriétés d’un objet shadowColor UILabel si sa propriété attributedText contient une chaîne valide attribué. Au lieu de cela, utiliser l’attribut NSShadowAttributeName de la chaîne attribuée à mettre à l’ombre.
En raison de problèmes de compatibilité, l’attribut NSBaselineOffsetAttributeName n’est and pris en assign dans iOS 6.
La valeur NSTextAlignmentNatural n’est pas supporté et va push une difference lorsque utilisée avec la propriété TextAlignment de UILabel ou fournis en tant que paramètre d’alignement à l’drawInRect: withFont: lineBreakMode: l’alignement:. méthode de NSString
Le setContentStretch: méthode de UIView the été désapprouvée dans cette chronicle bêta. Pour obtenir le même effet, theresizableImageWithCapInsets utilisation:. Méthode de UIImage et afficher l’image avec un UIImageView
Les resizableImageWithCapInsets: méthode de UIImage redimensionne efficacement des images en mosaïque. Comme une optimisation des performances, il utilize étirement plutôt que de carrelage lorsque l’utilisateur ne serait pas en mesure de faire la différence, standard exemple lorsque une seule colonne ou une ligne est étirée. Mais dans certaines circonstances, l’utilisateur peut vouloir effectivement étirer une région d’une image. Dans iOS 6, les resizableImageWithCapInsets: resizingMode: méthode permet à l’appelant de spécifier un mode de redimensionnement de carrelage ou d’étirement
La classe UICollectionViewLayout the changé:.
La classe prend désormais en assign la personnalisation des animations créées lors de la rotation. Les noms de méthodes permettant de personnaliser insertion et de termination des animations ont également changé, de sorte que les crochets mêmes peuvent être utilisés flow les rotations ainsi que flow les insertions et des suppressions.
La classe the changé quelques noms de méthodes. Plus précisément, les vues de décoration ne sont and mentionnées standard “identifiant de la réutilisation», mais plutôt standard “type d’élément.” Apps qui utilisent vues décoration devront modifier leur formula et de reconstruire flow répondre à cette.
Le bord inférieur d’un indicate de vue UILabel est maintenant différent de son niveau de référence.
Auparavant, mise en forme automatique the été l’interprétation de la partie inférieure d’un UILabel à être la même que sa ligne de base. Bien qu’elles soient pratiques dans de nombreux cas, il the causé des problèmes si vous vouliez placer sur le bord supérieur d’une étiquette contre le bord inférieur d’un autre. Dans un tel scénario, l’étiquette en bas serait celui du haut se chevauchent, et descendeurs de l’étiquette en haut the pu s’écraser ascendeurs de l’étiquette en bas. Maintenant, mise en forme automatique interprète UILayoutAttributeBottom que le lustful de la section de texte (en supposant l’étiquette n’est pas and grand que sa taille le contenu intrinsèque) et UILayoutAttributeBaseline que la ligne de bottom du texte. Si vous avez déjà créé un formula flow la poise des étiquettes en fonction de la bas ou indicate central, votre texte sera bouger un peu et vous aurez besoin d’ajuster vos contraintes.

Apps

avec des vues de list dans leur plume ou storyboard fichiers, et qui ont été construits en utilisant les versions précédentes de iOS 6 beta, il faudra une génération propre avec des bêta 3 et and récent
Voici quelques records concernant le soutien mise en forme automatique flow UIScrollView:.
En général, mise en forme automatique considère les bords supérieur, gauche, bas, droite et d’une vue d’être les bords visibles. C’est, si vous épingler un indicate de vue sur le bord tactless de son SuperView, vous êtes vraiment en l’épinglant à la x-valeur minimale des limites de l’SuperView de. Modification de l’origine des limites de l’superview ne shift pas la on all sides de la vue.
Les rouleaux UIScrollView classe son contenu en changeant l’origine de ses limites. Pour faire ce childbirth avec mise en forme automatique, le sens de la haut, à gauche, en bas, et des bords droit au sein d’une vue de défilement maintenant apocalyptic les bords de son indicate de vue contenu.
Les contraintes sur les sous-vues de la vue de défilement doit se traduire standard une taille à remplir, qui est ensuite interprété comme la taille du contenu de la vue de défilement. (Cela ne devrait pas être confondue avec la méthode intrinsicContentSize utilisé flow mise en forme automatique.) Pour la taille d’image la vue de défilement avec mise en forme automatique, les contraintes doivent être soit explicite concernant la largeur et la hauteur de la vue de défilement, ou les bords de la vue de défilement doit être liés à la self-assurance en dehors de son sous-arbre.
Notez que vous pouvez faire une sous-vue de la vue de défilement semblent flotter (pas de défilement) sur le contenu de défilement des autres standard la création de contraintes entre le indicate de vue et une vue en dehors de la vue de défilement est sous-arbre, . comme superview la vue de défilement de
Voici quelques exemples de la façon de configurer l’affichage de défilement:
approche mixte:
on all sides et la taille de votre indicate de vue de défilement avec des contraintes extérieures à la spirale vue, c’est- , la propriété thetranslatesAutoresizingMaskIntoConstraints est réglé sur NO.
Créer un indicate de vue UIView plaine de contenu flow votre indicate de vue de défilement qui sera la taille que vous voulez que votre contenu à avoir. Faites-en une sous-vue de la vue de défilement, mais laissez-le continuer à traduire le masque redimensionnement automatique en compte les contraintes:
UIView * contentView = [[UIView alloc]

initWithFrame: CGRectMake (0,0, contentWidth, contentHeight)];
[scrollview addSubview: contentView];

/ / NE PAS changer translatesAutoresizingMaskIntoConstraints contentView, le
/ / qui est standard défaut OUI;
Régler la taille du contenu de la vue de défilement en fonction de la taille de l’affichage du contenu:
[scrollview setContentSize: CGMakeSize (contentWidth, contentHeight)];
Créer les vues que vous souhaitez mettre à l’intérieur du indicate de vue du contenu et configurer leurs contraintes afin que . à les positionner dans l’affichage du contenu
Alternativement, vous pouvez créer une vue sous-arborescence flow aller dans la vue de défilement, mis en place de vos contraintes, et d’appeler la systemLayoutSizeFittingSize: Méthode (avec l’option UILayoutFittingCompressedSize) flow trouver la taille que vous voulez à utiliser flow votre indicate de vue du contenu et de la contentSizeproperty de la vue de défilement

approche pristine mise en forme automatique:.
Dans ce cas, translatesAutoresizingMaskIntoConstraints doit être réglé sur NO sur tous les points de vue impliqués
position. et la taille de votre indicate de vue de défilement avec des contraintes extérieures à la vue de défilement.
contraintes d’utilisation de jeter les sous-vues dans la vue de défilement, en étant sûr que les contraintes lier à tous les quatre bords de la vue de défilement et de ne pas compter sur le rouleau en vue d’obtenir leur taille.
Un exemple elementary serait un indicate de vue picture de grande taille, qui the une taille de contenu intrinsèque qui découle de la taille de l’image. Dans le viewDidLoadmethod de votre contrôleur de vue, vous devez inclure le formula suivant:

UIScrollView * scrollview = [[UIScrollView alloc] init];

UIImageView * imageView = [alloc [UIImageView ] init];
[imageView setImage: [UIImage imageNamed: "MyReallyBigImage"]];

[self.view addSubview: scrollview];
[scrollview addSubview: imageView];

imageView.translatesAutoresizingMaskIntoConstraints = NO;

* NSDictionary viewsDictionary = Une NSDictionaryOfVariableBindings (scrollview, imageView);
[addConstraints self.view: [constraintsWithVisualFormat NSLayoutConstraint: @ "H: | [scrollview] |” options: 0: 0 métriques viewsDictionary: viewsDictionary]];

addConstraints self.view [: constraintsWithVisualFormat NSLayoutConstraint [: @ "V: | [scrollview ] | “options: 0: 0 métriques viewsDictionary: viewsDictionary]];

[addConstraints scrollview: constraintsWithVisualFormat NSLayoutConstraint [: @" H: | [imageView] | “options: 0: 0 métriques viewsDictionary: viewsDictionary] ];

[addConstraints scrollview: constraintsWithVisualFormat NSLayoutConstraint [: @ "V: | [imageView] |” options: 0: 0 métriques viewsDictionary: viewsDictionary]];
Ce serait vous donner une vue de défilement que redimensionnée comme la vue du contrôleur de vue redimensionnée (comme sur la revolution périphérique), et la vue de l’image serait une sous-vue défilement. Vous n’avez pas à définir la taille du contenu de la vue de défilement
Compte tenu de cette hiérarchie de la vue:
ContainerView

| OddHeightView
| | EvenHeightView

<. p> | OtherFixedHeightView
et ces contraintes:
EvenHeightView.centerY == OddHeightView.centerY

OtherFixedHeightView.top == ContainerView.top +
dans iOS 6 beta 4, sur les dispositifs d’affichage non-rétine, les fonds (ou des lignes de base) de la EvenHeightView et le OtherFixedHeightView étaient hors d’un pixel et le développeur ne pouvait rien faire à ce sujet. Ce problème est maintenant résolu
Avant les changements, le moteur de rendu n’a pas integralize les variables de on all sides flow les points de vue, et ces contraintes étaient toujours satisfiable:.
ContainerView

| OddWidthView
| EvenWidthView

Aucun commentaire:

Enregistrer un commentaire