Comment puis-je régler la marge gauche pour le prototype de cellules dans un UITableView?
Si je crée un UITableViewController
, par exemple via Fichier → Nouveau Projet... → iOS → Maître-Détail de la Demande dans Xcode, un UITableView
est créé avec un prototype de cellule.
Générés afficher la hiérarchie est:
De gauche de la "marge" est automatiquement créé entre le Contenu de la Cellule UIView
bord gauche et le "Titre" du texte UILabel
élément comme indiqué ci-dessous en orange.
Il en résulte une marge entre l'écran de l'appareil de pointe et le UILabel
texte au moment de l'exécution:
Alors, où est la largeur de cet écart défini, et comment peut-il être réglé?
Les contrôles de la Taille de l'Inspecteur pour la UILabel sont grisées:
Mon option préférée serait d'être en mesure de définir la largeur de cet écart de dans Interface Builder, mais j'aimerais aussi comprendre d'où cet écart est en cours de définition, et comment le modifier par programmation.
- Êtes-vous à l'aide d'un style personnalisé de la cellule ou de base?
- De base. Ce qui précède est juste prises directement à partir de la valeur par défaut de Maître-Détail du projet dans Xcode.
Vous devez vous connecter pour publier un commentaire.
Il vous suffit de définir
contentInset
propriété de l'affichage de la table. Vous pouvez définir la valeur en fonction de votre besoin.self.tableView.contentInset = UIEdgeInsetsMake(0, -15, 0, 0);
RÉSULTAT DE SORTIE
contentInset
dans Interface Builder?Aller à
Main.storyboard
> sélectionnez leUITableViewCell
>Attributes Inspector
. Changer le Séparateur de liste déroulante à partir de Défaut Encarts Personnalisés Encarts. Changer la gauche en retrait de 15 à 0À partir de iOS 8 est disponible à la propriété de cellule
layoutMargins
.Donc la bonne façon d'ajuster les marges de la cellule est la définition de cette propriété dans votre
tableView:cellForRowAtIndexPath
ou dans votre personnaliséUITableViewCell
de cette façon:J'espère que cela peut aider quelqu'un.
self.contentView.layoutMargins = UIEdgeInsetsZero
aura l'effet escompté. Au moins pour moi car j'ai l'alignement de tous les points de vue par rapport à l'affichage du contenu des marges.directionalLayoutMargins
devrait être utilisé au lieu de cela, comme par layoutMargins docIl suffit d'ajouter la méthode dans votre code comme indiqué dans le lien ci-dessous
La méthode est comme:
Dans la TableView "Attributs de l'inspecteur de" définir le Séparateur Encarts "Personnalisé" avec la de Gauche = 0.
C'est tout ce que vous avez à faire!
UITableView
'scontentInset
de la propriété.Comme WTIFS mentionné,
UITableViewCell
'sindentation
propriété est un excellent moyen de retrait des étiquettes de texte dans un construit-dans les styles de cellule. Tout simplement faire quelque chose de ce genre pour atteindre une belle marge de gauche:Ceci, cependant, ne serait pas travailler pour imageView.
Si vous utilisez un xib pour votre cellulaire, assurez-vous que la Relative "à la marge" n'est pas cochée. Vous pouvez le vérifier via l'inspecteur, comme illustré dans la capture d'écran suivante:
Ici est la swift version de Chetan réponse:
Je pense que je suis juste venu avec une solution de facilité. lol.
La réponse sommet ont un problème...il baisse la gauche écart, mais résultant d'un droit d'écart.
J'ai utilisé le contraint dans Interface Builder.
D'abord ajouter un -15 marge de gauche contraindre à la Vue de la Table.
Puis ajouter un peu de Indentation à la Cellule du Tableau pour rendre le contenu regarder mieux.
↘
Voilà quelques, étape par étape, photos:
Ajouter la contrainte. N'oubliez pas de décocher la case "espacement plus proche voisin".
Les Cellules de la Table se déplace à gauche. Mais semble trop près de la marge.
Afin de choisir la Cellule de Tableau, et ajouter un peu mise en retrait dans la zone de droite.
Et si vous voulez changer juste la marge de gauche de la cellule textlabel seulement, puis changer le
Horizontal Space Constraint 'Constant'
- à-dire 16 ou 8 en fonction de la marge que vous souhaitez.(C'est dans le fichier nib). Si vous arrivez à la "constante" de Sélectionner l'étiquette, modifier la coordonnée x dans la FrameRectangle Affichage, puis cliquez sur la contrainte de la broche à gauche)