如何使用自动布局来移动自定义 UITableViewCell 的内容并调整其大小?
为了使问题更清楚,我分配了contentView
我的自定义单元格具有浅灰色背景颜色。为了将这个问题尽可能减少到最小,我的自定义单元只有一个UIImageView
named ratingImageView
显示一些黄色星星;下图中可以看到三个这样的单元格。
My ratingImageView
只有 4 个约束; (1) 宽度 =81,(2) 高度 =40,(3) 将中心 Y 与超级视图对齐,(4) 尾随空间与超级视图 =20。我希望当标准删除按钮出现在滑动删除时,超级视图约束的尾随空间会强制图像视图向左移动。然而,事实并非如此,如下图所示。
我尝试了许多不同的约束组合,但无法使ratingImageView
正如我所期望的那样转变。
我通过良好的工作遇到了这个问题介绍性故事板教程。我使用良好的旧支柱和弹簧来完成这项工作没有任何问题,但我决定尝试使用自动布局,但没有运气。
当我转向自动布局时,我遇到了同样的问题ON
为了tutorial.
问题是因为约束Horizontal Space (20)
。该约束的优先级设置为1000
默认情况下,这意味着高优先级。因此,当 imageView 遵守约束并使其自身保持在其位置时,无需重新定位对应于 UITableViewCell(本例中为 PlayerCell)内容视图的位置。delete
显示按钮。
通过与我的同事合作,我们找到了这个问题的解决方案。以编程方式向 ratingImageView 添加约束解决了这个问题。如果有人有比这更好的解决方案,请在此处发布。
- 打开故事板并选择 PlayerCell 并展开其约束。
- 选择约束条件“
Horizontal Space (20)
" 并在属性检查器中将其优先级设置为任何较低的值。
-
在 PlayersViewController.m 文件中添加以下代码cellForRowAtIndexPath
tableView的委托方法:
UIImageView *ratingImageView = cell.ratingImageView;
NSDictionary *dict = NSDictionaryOfVariableBindings(ratingImageView);
[cell.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[ratingImageView]|" options:0 metrics:nil views:dict]];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)