2014-11-14 92 views
2

我创建了一个自定义单元格,MatchCenterCell,其中我创建了一个名为UILabelpriceLabel,它坐落在一个UITableView细胞内相对于图像的UILabel的位置。它目前设置的方法是像这样:如何设置在电池

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     self.PriceLabel = [[ UILabel alloc]initWithFrame:CGRectMake(90, 35, 70, 40)]; 
    } 
    return self; 
} 

然而,这会导致问题,因为每个单元的图像大小有所不同,所以具有90 x坐标意味着有时会错位,如“最佳匹配“下面的标签显示: enter image description here

我怎样才能使相对x坐标为cell.imageView,使其排队的方式textLabeldetailTextLabel做上面呢?

+1

使用自动布局。 – rdelmar 2014-11-14 22:20:58

+0

@rdelmar说了什么。您可以直接向标签添加约束,以确保它与图像垂直和水平居中。 – brandonscript 2014-11-14 22:35:24

回答

0

您可以使用auto-layout作为意见提出,或覆盖布局子视图如下:

- (void)layoutSubviews() 
{ 
    [super layoutSubViews]; 
    self.detailTextLabel.y = 0; 
    self.detailTextLabel.x = self.imageView.right + 10; 
    self.detailTextLabel.height = self.contentView.height; 
    self.detailTextLabel.width = self.contentView.width - self.detailTextLabel.x; 
} 

上述用途CKUITools做自定义布局时,它增加了一些方便的方法。

+0

虽然我的'UITableView'以编程方式初始化,而不是通过故事板。在那种情况下,我将如何使用autolayout?我会在哪里放置你发布的代码? – Ghobs 2014-11-15 23:41:12

+0

您仍然可以以编程方式使用自动布局,但上面的示例是* not * auto-layout只是覆盖自定义单元格中的layoutSubviews。 。 – 2014-11-16 00:26:54