无法使用约束右对齐视图
Posted
技术标签:
【中文标题】无法使用约束右对齐视图【英文标题】:Unable to right-align view using contraints 【发布时间】:2013-08-26 03:18:23 【问题描述】:我有一个使用自定义 UITableViewCell 的 tableview。该单元格包含一个需要在单元格中右对齐的 UILabel。
这是一个 iPad 应用程序。我将自定义单元格设计为默认适合纵向(768 宽度)。问题是当应用程序旋转到横向时,UILabel 不会停留在右侧。我什至进行了测试,以确保单元格本身正确拉伸到横向宽度。
无论我做什么,它似乎都只想相对于左侧对齐。在 IB 的约束中,我选择了“Trailing Space to Superview”,但它似乎没有做任何事情。 IB 自动将水平间距 (651) 设置为从左侧偏移。我无法删除此约束。
这真的很难做到吗,还是我错过了一些非常明显的东西?
【问题讨论】:
您是在代码中还是在 IB 中设置约束?自动布局是否开启? @CaptJak,IB 仅在这一点上。是的,约束已打开。其他约束正常工作。 那么,如果你给标签一个单元格的尾随空格和一个特定的宽度,你不能删除左侧的约束吗? 我不知道如何仅使用 IB 来做到这一点...但是您是否尝试过将 UILabel 固定到原型单元? (即编辑器\引脚\水平间距) @rdelmar,除了“到 Superview 的尾随空格”之外,还有其他方法可以添加尾随空格吗?这是我尝试过的,但它没有做任何事情,即没有添加新的约束。 【参考方案1】:【这边走Cell IBoutlet】
1.从 ios/用户界面/Empty 添加新文件。 2. 从对象中添加表格视图单元格并在其中添加标签。 2.给标签标签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;
这对我来说非常有用。
【讨论】:
以上是关于无法使用约束右对齐视图的主要内容,如果未能解决你的问题,请参考以下文章
如何添加约束以右对齐 UITableViewCell 内的图像