Cocoa iOS / Touch:保持UITableViewCell contentView的子视图右对齐

时间:2011-06-13 17:32:21

标签: ios uitableview width alignment

假设我有一个UITableView

  1. 是iPad应用的一部分
  2. 不使用整个屏幕
  3. 根据应用程序的状态和其他视图更改其宽度
  4. 我在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的子视图与单元格的右边框对齐?

1 个答案:

答案 0 :(得分:2)

您可以尝试设置单元格autoresizingMask及其autoresizesSubviews属性吗?

这可能会起作用:

cell.contentView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleWidth;
cell.contentView.autoresizesSubviews = YES;

您还应该设置autoresizingMask的{​​{1}},我认为:

UILabel

Here the docs