2011-03-28 1 views
3

J'ai un UITableViewCell. Le textLabel.text est mis à une certaine valeur. Pour la sous-vue de la cellule, j'ajoute soit un UILabel, UIButton ou un UITextField (juste un de ceux-ci par cellule). J'ajoute ces vues en utilisant un CGRectMake, ce qui signifie que je dois spécifier la position X.Force UITableViewCell à conserver les objets alignés à droite sur le changement d'orientation

Mais lorsque je change l'orientation de l'iPad, UITableViewCell s'étire et UILabel, UIButton ou UITextField ne sont plus alignés à droite. C'est quelques pixels à gauche, ce qui le rend laid.

Comment faire pour que les objets sur le côté droit restent alignés à droite, même lorsque l'orientation change?

(Si vous allez dans les "Paramètres" de l'iPad - voir les paramètres sur la bonne vue - toute orientation change, et ils restent collés à l'extrémité droite de l'UITableViewCell.C'est l'effet que je suis après ici.

Répondre

4

OK, l'a compris! Vous pouvez simplement définir la propriété accessoryView de UITableViewCell à l'objet de contrôle et cela fonctionne!

cell.accessoryView = the_control 

Pas besoin de déranger avec quoi que ce soit d'autre. Je l'ai trouvé en lisant le e Table View Programming Guide for the iOS du iOS Developer Library, que j'aurais dû faire en premier lieu :-)

+0

J'essayais d'aligner un bouton dans un UITableViewCell qui était dans un UITableView groupé. J'ai continué à essayer de l'aligner dans le contentView, mais la largeur a seulement pris tellement de la cellule. En outre, UITableView ne donne pas les marges horizontales. Cela a résolu mon problème cependant. Aucun alignement requis. Merci!!! –

+0

par the_control vous voulez dire l'élément UIControl, comme le bouton .. je l'ai eu. – Simon

1

Vous devez définir la propriété autoresizingMask de la vue à coller afin qu'elle reste à une distance fixe du bord droit. Dans IB c'est pointer-cliquer, dans le code ceci est fait par

myview.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin 
+0

Cela ne semble pas fonctionner! – sc45

+1

De votre explication, je ne peux pas déduire la structure exacte de vos vues, mais si la vue n'est pas une sous-vue directe de la tableviewcell, vous devez prendre soin de définir les masques autoresizing des vues entre eux. – mvds

Questions connexes