gpt4 book ai didi

objective-c - 使用自定义 UITableViewCell 自动布局

转载 作者:太空狗 更新时间:2023-10-30 03:26:13 27 4
gpt4 key购买 nike

如何使用自动布局让自定义 UITableViewCell 的内容移动和调整大小?

为了使问题更清楚,我已将自定义单元格的 contentView 指定为浅灰色背景色。为了尽可能减少这个问题,我的自定义单元格只有一个名为 ratingImageViewUIImageView,它显示了一定数量的黄色星星;下图中可以看到三个这样的单元格。

Table view with custom cells and auto layout

我的 ratingImageView 只有 4 个约束; (1) 宽度 =81,(2) 高度 =40,(3) 将中心 Y 与父 View 对齐,以及 (4) 尾随空格与父 View =20。当标准删除按钮出现在滑动删除时,我本以为 super View 约束的尾随空间会强制 ImageView 向左移动。但是,如下图所示。

Custom cell content not moving with auto layout

我已经尝试了许多不同的约束组合,但无法像我预期的那样使 ratingImageView 移动。

我通过很好的工作遇到了这个问题 introductory Storyboard tutorial .使用良好的旧支柱和 Spring 来完成这项工作没有问题,但我决定尝试使用自动布局但没有运气。

最佳答案

我在打开 Autolayout 时遇到了同样的问题 ON对于tutorial .

问题是因为约束Horizontal Space (20) .此约束的优先级设置为 1000默认情况下,这意味着高优先级。因此,当 delete 时,imageView 遵守约束并使自己保持在其位置而不重新定位对应于 UITableViewCell(在本例中为 PlayerCell)的内容 View 。显示按钮。

在与同事的合作中,我们找到了解决此问题的方法。以编程方式向 ratingImageView 添加约束解决了这个问题。如果有人有比这更好的解决方案,请在此处发布。

  1. 打开 Storyboard并选择 PlayerCell 并展开其约束。
  2. 选择约束“Horizontal Space (20)”并在属性检查器中将其优先级设置为任何较低的值。
  3. 在 PlayersViewController.m 文件中,在 cellForRowAtIndexPath 中添加以下代码tableView 的委托(delegate)方法:

    UIImageView *ratingImageView = cell.ratingImageView;<br/>
    NSDictionary *dict = NSDictionaryOfVariableBindings(ratingImageView);
    [cell.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[ratingImageView]|" options:0 metrics:nil views:dict]];

关于objective-c - 使用自定义 UITableViewCell 自动布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12998672/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com