Ios (UITableViewCell)覆盖布局子视图是否与自动布局或故事板竞争?
我正在制作UITableView单元格的一个子类 我已将单元格contentView、backgroundView和selectedBackgroundView全部设置为tableView中设置的180.0行高的单个CGInsert。我的第一个问题是,当我尝试将inset rect指定给图像视图时,图像会向右推+-5个点。所以我求助于手工制作rect 然后我设置文本标签的大小和颜色,但是我指定的特定属性直到单击单元格后才会显示 当我不手动设置文本标签时-图像将文本标签推离屏幕,仅显示一个字母和一个。。。省略号 似乎我所做的每一次修改都会导致某些东西出现故障,而且我的代码似乎正在与某些自动系统竞争。这非常令人沮丧,我不知道该做什么,甚至不知道如何调试它。任何关于UITableViewCell中带有故事板的LayoutSubview的技巧都将非常棒,因为我似乎遗漏了一些关键的东西 我的布局子视图Ios (UITableViewCell)覆盖布局子视图是否与自动布局或故事板竞争?,ios,uitableview,layoutsubviews,Ios,Uitableview,Layoutsubviews,我正在制作UITableView单元格的一个子类 我已将单元格contentView、backgroundView和selectedBackgroundView全部设置为tableView中设置的180.0行高的单个CGInsert。我的第一个问题是,当我尝试将inset rect指定给图像视图时,图像会向右推+-5个点。所以我求助于手工制作rect 然后我设置文本标签的大小和颜色,但是我指定的特定属性直到单击单元格后才会显示 当我不手动设置文本标签时-图像将文本标签推离屏幕,仅显示一个字母和一
为什么不在IB中创建包含所有子视图的单元格?约束将在那里设置,您可以根据需要进行调整。我想我会的。我把程序化视图构建作为一个学习课程,但是我被所有的陷阱打败了。我仍然不明白为什么我的layoutSubviews会变得疯狂——故事板是一个库存主细节设置。如果没有看到您的代码,很难说出来。@rdelmar只是使用故事板来完成我上面发布的所有操作,结果证明它应该是这样的。遗憾的是,用代码做事是如此的晦涩难懂。我觉得在使用IB时我失去了控制。事情发生冲突的原因是因为你正在设置帧。使用“自动布局”时,不应设置任何框架,而应调整约束。
-(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];
}