使用约束无法将视图右对齐

3
我有一个使用自定义UITableViewCell的tableView。单元格包含需要右对齐的UILabel。
这是一个iPad应用程序。我设计了自定义单元格以默认情况下适合纵向方向(768宽度)。问题是,当应用程序旋转到横向方向时,UILabel不能保持在右侧。我甚至测试过确保单元格本身正确地拉伸到横向方向的宽度。
无论我做什么,它似乎只想相对于左侧对齐。在IB中的约束条件中,我选择“Trailing Space to Superview”,但它似乎没有任何作用。IB会自动将“Horizontal Space(651)”设置为距离左侧的偏移量。我无法删除此约束条件。
这真的很难做还是我只是忽略了一些非常明显的东西?

如果您将标签设置为单元格的尾随空格,并指定宽度,那么您是否无法删除左侧的约束? - rdelmar
我不确定只使用IB如何实现这个,但您是否尝试将UILabel固定到原型单元格上?(即 编辑器\固定\水平间距) - CaptJak
@rdelmar,除了“Trailing Space to Superview”之外,还有其他添加尾随空格的方法吗?这是我尝试过的,但它并没有做任何事情,即没有添加新的约束。 - Steve Barden
@CaptJak,编辑器/引脚/水平间距被禁用了。我无法选择它。 - Steve Barden
以这种方式添加应该可以工作。另一种方法是将其向右拖动,直到您看到沿其右侧的虚线蓝线。这为您提供了到右侧边缘的标准距离。 - rdelmar
显示剩余9条评论
1个回答

0

[沿这个方式获取 IBoutlet 单元格]

1. 从 ios/用户界面/空文件夹中添加新文件。 2. 从对象中添加表视图单元格,并在其中添加标签。 3. 将标签设置为 1 号标签并右对齐(如下图所示)。

  [1]: http://i.stack.imgur.com/8AzJH.png

现在在你的tableview代理方法中添加以下代码

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    NSString *cellid =@"Cellid";

    UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:cellid];
    if(cell==nil){

        cell =[[[NSBundle mainBundle] loadNibNamed:@"cell" owner:self options:nil] objectAtIndex:0];
        //[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellid];

    }
    UILabel *celllabel = (UILabel*)[cell viewWithTag:1];
    celllabel.text =@"Test label alignment";
    return cell;
}

这对我来说完美地工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接