jjzjj

ios - UITableViewCellAccessoryCheckmark 和 AutoLayout 约束

coder 2023-07-26 原文

我有自定义 UITableViewCell 并管理我的单元格选择。选择单元格并显示复选标记后,单元格 Content View 宽度会缩小,并且带有尾随约束的标签会向左移动。如何有效避免内容迁移?

我不想将约束设置为前导,因为我有灵活的 tableview 宽度并且它们是右对齐的。当我想通过它的 IBOutlets 更新标签在代码中的约束时,我遇到了麻烦,因为我在 cellForRow: 中返回了 UITableViewCell 的多个子类,我得到了尝试在代码中设置约束时,didSelectRowAtIndexPath: 中出现无法识别的选择器错误。任何优雅的解决方案?谢谢。

最佳答案

我有一个类似的(实际上是确切的)问题,复选标记会将所有内容推到左边。

- 编辑:

在我最初回答几个小时后,我意识到这是一个非常简单的问题。

向左插入是插入单元格的 contentView 的约束。所以?

将右侧项目(如 i 按钮)的约束连接到单元格本身,而不是它的 contentView。



- 原始答案(实际答案在最上面,这是为了记录):

我刚刚意识到有一个非常简单的解决方案。我有一个按钮,当Checkmark打开时向左按下,我必须保留一个约束以将其保留在适当的位置(因此,“取消选中”不会将按钮移至右侧)。它是正确的硬编码“宽度”,总体上只是不好的做法。没关系,我无法“获取”复选标记“宽度”来动态执行此操作。

解决方案?

从左侧保持约束。

就是这样。我也有一个标签,所以在我的例子中:从按钮左侧到标签的约束(因此它们不会重叠)以及从按钮左侧到左侧内容 View 。基本上,右边的任何移动都不会真正“到达”左侧(而是让所有东西都“坐在”右边)。

关于ios - UITableViewCellAccessoryCheckmark 和 AutoLayout 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22933094/

有关ios - UITableViewCellAccessoryCheckmark 和 AutoLayout 约束的更多相关文章

随机推荐