2010-07-29 5 views
3

J'ai configuré UITableView (largeur 320) avec un UITableViewCell créé dans IB, la cellule est également large de 320. Après avoir défini une image d'arrière-plan (largeur 320) dans UITableViewCell (ou ma sous-classe pour être correcte), j'ai remarqué que les cellules ne correspondent pas au côté droit de l'interface utilisateur (notez le bleu sur la cellule sélectionnée) Est-ce que quelqu'un sait ce qui cause cela?UITableViewCell étrange largeur?

alt text

Vive Gary

+0

Assurez-vous que la taille de votre cellule est également correcte. –

Répondre

3

je mettais le style seperator et la couleur seperator sur le UITableView, cela prend 1 pixel au large de la hauteur de la cellule pour la seperator et compense la backgound d'environ 5 pixels à la droite. Si je réduis l'image d'arrière-plan qui va dans la cellule de 320x65 à 320x64 cela correspond parfaitement sans décalage.

alt text

La seule différence entre les deux écrans ci-dessous est la suivante:

GAUCHE: UITableView Seperator = "none" (fond UITableViewCell a pas de décalage)

DROITE: UITableView Seperator = "Ligne unique" (l'arrière-plan UITableViewCell a un décalage)

DONNÉES:

  • résolution cellulaire: 320x65
  • vue Cell: 320x65
  • fond de la cellule image Résolution: 320x65

Si vous voulez utiliser le séparateur de votre image de fond de la cellule doit être 320x64, cela arrêtera il se déplace latéralement et affiche la cellule correctement.

Vive Gary

0

Il me semble que vous êtes tout simplement pas régler la contentMode de votre point de vue de l'image d'arrière-plan correctement (à savoir que vous configurez à aspectFit ou quelque chose). Etes-vous sûr qu'il est compensé par 5, et non réduit de 5 pixels? Par exemple, si l'image originale est de 320x65 et que la hauteur est réduite à 64, aspectFit la mettra à l'échelle tout en conservant le même format, à 64/65 * 320 ~= 315.

+0

Il est difficile de voir comme caché au large de la cellule. Le bleu que vous voyez sur la droite est le point culminant complet que vous voyez lorsque vous sélectionnez une cellule. Si l'image a été mise à l'échelle, vous vous attendez à ce que le bleu apparaisse également en haut ou en bas. Aussi c'est drôle comment il fonctionne magiquement lorsque vous éteignez le séparateur, donc je suppose qu'il est correctement installé. – fuzzygoat

+0

Je viens de tester cela en plaçant une bordure blanche de 1 pixel tout autour d'une cellule noire 320x65, avec le séparateur sur la bordure touche exactement tous les côtés de la cellule sauf le droit où le blanc est en retrait selon le bleu ci-dessous. Donc la hauteur est bonne, c'est la largeur qui s'échelonne. – fuzzygoat

+0

Si je vous lis correctement, vous avez une image 320x65, tout en noir sauf une bordure blanche. Si c'est le cas, alors avec le séparateur activé, vous adaptez une image de 320x65 dans une vue 320x64, ce qui réduit l'échelle de l'image à 315x64 en raison du format. Encore une fois, définir votre contentMode correctement résoudrait ce problème (dans ce cas, vous voudriez scaleToFit). –