(UITableViewCell)重写layoutSubviews是否与自动布局或故事板竞争?

时间:2013-08-27 02:23:04

标签: ios uitableview layoutsubviews

我正在创建UITableView单元的子类。

我已将单元格contentView,backgroundView和selectedBackgroundView全部设置为单个CGInsetRect(在tableView中设置的180.0 rowHeight)。我的第一个问题是当我尝试将插入矩形分配给图像视图时 - 图像被向右推+6点。所以我已经手动制作了矩形。

然后我设置了文本标签大小和颜色,但是在我单击单元格之前,我指定的特定属性不会出现。

当我没有手动设置文本标签时 - 图像将textLabel推到屏幕外,只显示一个字母和一个“...”省略号。

似乎我所做的每一次修改都会导致某些内容破裂,而且我的代码似乎与某些自动系统竞争。它非常令人沮丧,我不知道该怎么做,甚至不知道如何调试这个。有关故事板的UITableViewCell中layoutSubviews问题的任何提示都会很棒,因为我似乎缺少一些关键的东西。

我的layoutSubviews

-(void) layoutSubviews
{
    [super layoutSubviews];

    const CGRect insetRect            = CGRectInset( self.bounds, 7, 4 );

    self.contentView.frame            = insetRect;
    self.backgroundView.frame         = insetRect;
    self.selectedBackgroundView.frame = insetRect;

    self.imageView.frame              = CGRectMake(0, 0, 306, 172);
    self.textLabel.frame = CGRectMake(0, 132, 306, 40);
    self.textLabel.backgroundColor = [UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:0.5];

    self.backgroundColor = [UIColor clearColor];
    self.contentView.backgroundColor = [UIColor whiteColor];
    self.selectedBackgroundView.backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.1];
}

0 个答案:

没有答案