假设我有一个UITableView
我在UITableView的单元格的contentView中添加了一个额外的子视图(假设是UILabel)。我希望UILabel的右边框始终与右边的边框相距10个像素。
我设法为任何宽度的表格视图的初始绘图执行此操作,方法是在将其出列后专门设置单元格框架,这也会更新contentView的宽度(否则单元格似乎始终为320像素宽)。 / p>
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
if (cell == nil) {
cell = [[[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID] autorelease];
CGRect oldFrame = cell.frame;
cell.frame = CGRectMake(oldFrame.origin.x, oldFrame.origin.y, tableview.frame.size.width, oldFrame.size.height);
/* and other stuff */
}
问题:当表格视图的大小在运行时发生变化时,如何保持单元格contentView的子视图与单元格的右边框对齐?
答案 0 :(得分:2)
您可以尝试设置单元格autoresizingMask
及其autoresizesSubviews
属性吗?
这可能会起作用:
cell.contentView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleWidth;
cell.contentView.autoresizesSubviews = YES;
您还应该设置autoresizingMask
的{{1}},我认为:
UILabel