iOS 9 UITableView séparateurs encarts (significative de la marge de gauche)
J'ai un problème avec séparateurs entre UITableViewCell
s dans UITableView
sur iOS 9
. Ils ont l'importante marge de gauche. J'ai déjà le code pour enlever l'espacement introduit par iOS 8
mais il ne fonctionne pas avec iOS 9
. On dirait qu'ils ajouté quelque chose d'autre. Je suppose qu'il peut être connecté avec layoutMarginsGuide mais je n'ai pas pensé à elle encore. Est-ce quelqu'un a eu un problème similaire et trouvé la solution?
- Apple Developer Forum: forums.developer.apple.com/thread/20017
- Cette réponse peut aider les autres avec les mêmes questions: stackoverflow.com/a/38206546/1137246
Vous devez vous connecter pour publier un commentaire.
Bon, J'ai trouvé la solution. La seule chose requise pour cela est à mettre sur la présentation de l'instance de
UITableView
que le drapeaucellLayoutMarginsFollowReadableWidth
Je voulais trouver une référence dans la documentation, mais on dirait qu'il n'est pas encore prêt, seulement mentionné sur diff page.
Que le drapeau a été introduit dans l'iOS 9 pour la compatibilité descendante, vous devriez ajouter une case avant d'essayer de la définir:
Pour
Swift 2.0
vous pouvez utiliser#available
pour vérifier la version iOS.En outre vous avez besoin de le compiler avec
Xcode 7
ou au-dessus.MODIFIER
Veuillez garder à l'esprit que c'est la seule nécessaire de fixer, si votre séparateurs regardé "fine" jusqu'à iOS 8, sinon vous avez besoin de changer un peu plus. Vous pouvez trouver des infos comment faire déjà sur DONC.
[[UITableView appearance] setCellLayoutMarginsFollowReadableWidth:NO];
Si vous voulez le faire dans interface builder. Le séparateur par défaut encart
Automatic
. Changer decustom
en sélectionnant le menu déroulant.Swift 2.2 iOS 9.3
Dans le viewDidLoad
Dans UITableViewDelegates
Solution parfaite jusqu'à iOS 9
Dans le viewDidLoad
Dans TableViewDelegate méthodes d'ajouter le code suivant:
Swift 3.0 /4.0
Basées sur les différentes réponses ici, je suis en mesure de supprimer l'écart de séparateur avec ces lignes de codes Swift:
Encore, mais je vais avoir ce petit écart avant le texte:
-14
pourUITableView
au lieu d'utiliser les codes ci-dessus pour aligner la table manuellement.Cela a fonctionné parfaitement pour moi dans iOS 9.
Pour OBJ-C
Accepté la réponse n'a pas de travail pour moi. Jusqu'à ce que j'ai déménagé
setCellLayoutMarginsFollowReadableWidth
AVANTsetLayoutMargins
(encore nécessaires pour iOS 8):Pour iOS 8 et 9
et
C'est ma solution pour Swift 3.0/iOS 10 dans XCode 8.2.1.
J'ai créé une sous-classe pour UITableview, qui travaille pour l'IB et de créer par programmation tableviews.