2013-10-29 16 views
6

enter image description hereiOS - fügen Sie horizontale Polsterung Tableview Zellen

I horizontale Polsterung für meine Tabellenansicht Zellen als das Bild zeigt hinzufügen möchten.

habe ich eine Unterklasse von UITableViewCell, deren Breite betrug 314 Pixel (Bildschirmbreite beträgt 320), und stellen Sie den Rahmen in der initWithCoder Methode:

[self customizeXPosition:self.profileImage]; 
[self customizeXPosition:self.birthdayLabel]; 
[self customizeXPosition:self.heightLabel]; 
[self customizeXPosition:self.weightLabel]; 

dies ist mein - (void)customizeXPosition:(UIView *)view:

- (void)customizeXPosition:(UIView *)view { 
    CGRect tmpRect = view.frame; 
    tmpRect.origin.x += 3.0; 
    view.frame = tmpRect; 
} 

Die benutzerdefinierte Zelle war kleiner als der Bildschirm und ich habe jedes Element in der Zelle um 3 Pixel nach rechts verschoben. Ich dachte, dieser Code sollte mein Ziel erreichen, tat es aber nicht. Die Ansicht hat sich im Simulator nicht geändert, genauso wie ich keinen Code geschrieben habe.

Wie kann ich mein Ziel erreichen?

+1

lesen Sie in diesem Link: http://stackoverflow.com/questions/11399402/grouped-uitableview-and-horizontal -margins – faterpig

+0

genial! Dieser Link hat mein Problem gelöst! Möchten Sie die Informationen organisieren und diese Frage beantworten? – Brian

+0

sicher! :) Ich bin froh, dass es geholfen hat :) – faterpig

Antwort

7

Versuchen Sie, die -setFrame Methode in UITableViewCell zwingende gemäß diesen Beitrag:

How to set the width of a cell in a UITableView in grouped style

Swift version

+0

btw @Brian, ich denke, es wird besser sein, nur dies die Antwort zu machen, aber gehen Sie auf diese SO-Seite und auf die Antwort des Benutzers. Ich werde es nicht für die perfekte Antwort, die er gab, anerkennen. Er hat mir auch geholfen! :) und für andere, die diese Antwort gesehen haben, bitte, wenn diese Antwort dir geholfen hat, stimme seine Antwort ab und nicht ich. :) – faterpig

3

Das funktioniert gut für padding Dinge in Aussicht:

yourView.layer.sublayerTransform = CATransform3DMakeTranslation (10, 0, 0);

+7

autsch, das ist hässlich! : D – dwery

3

@faterpig ist in vielen Situationen richtig. Der Rahmen kann jedoch das automatische Layout beeinträchtigen.

Wenn Ihr Auto Layout aufgrund Einstellung Rahmen gebrochen ist, können Sie eine UIView, fügen Sie die kürzere Breite als die Zelle hat contentView, zum contentView und Ihre anderen UI-Elemente auf der Ansicht setzen.

Durch die folgenden Einstellungen zu tun, können Sie Zellen mit "horizontal padding" erhalten:

cell.backgroundColor = UIColor.clearColor() 
cell.contentView.backgroundColor = UIColor.clearColor() 
Verwandte Themen