问题描述
|
假设我有一个UITableView
是iPad应用程序的一部分
不使用整个屏幕
更改宽度,具体取决于应用程序的状态和其他视图
我在UITableView的单元格的contentView中添加了一个额外的子视图(比如说UILabel)。我希望UILabel的右边框始终离右单元格边框10像素。
我设法通过在出队列后专门设置单元格框架来对表格视图的任何宽度进行初始绘制,这也更新了contentView的宽度(否则,单元格似乎一直在320像素宽)。
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的子视图与单元格的右边框对齐?
解决方法
您可以尝试设置单元格
autoresizingMask
及其autoresizesSubviews
属性吗?
可能这会起作用:
cell.contentView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleWidth;
cell.contentView.autoresizesSubviews = YES;
您还应该将UILabel
中的ѭ1设为1,我认为:
label.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleWidth;
这里是文档。