故事板自动布局将视图放置在表格单元格中,并将尾随到超级视图约束固定到最左侧
Posted
技术标签:
【中文标题】故事板自动布局将视图放置在表格单元格中,并将尾随到超级视图约束固定到最左侧【英文标题】:Storyboard auto layout places view in table cell with fixed trailing-to-superview constraint to far left 【发布时间】:2021-04-07 15:34:15 【问题描述】:我在表格视图单元格的右侧放置了一个UIImageView
,并在单元格 20 中添加了尾随约束。
但当我运行应用程序时,图像一直在单元格的左侧结束。
我的表格视图控制器代码非常基础:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "SailboatCell", for: indexPath) as! SailboatTableViewCell
return cell
标识符是正确的,我也设置了单元格的类。
我已经做了很多自动布局,但不知道我会在这里遗漏什么。
在设备上,应用程序启动时图像位于右侧,但当我开始滚动时,图像最终位于新创建的单元格的左侧。当我将设备置于横向然后再次纵向时,事情会自行恢复。
不打印自动布局警告。
之前,我在单元格上还有其他 UI 元素,它们按预期放置得很好(从左到右)。只有图像视图表现得很奇怪。我删除了所有其他 UI 元素以避免任何干扰。
编辑:我已经重新创建了单元格,一切都很好。不知道是什么。
【问题讨论】:
根据您发布的模拟器图像,您似乎获得的是默认单元格而不是自定义单元格。我这样说是因为分隔线缩进了图像视图的宽度 --- 如果您使用自定义单元格,则不会发生这种情况。这是作为子视图的表格视图吗?或者它是一个表格视图控制器?无论哪种情况,请尝试删除控制器并重新开始使用新控制器。 【参考方案1】:这可能是因为您将单元格的semanticContentAttribute
设置为.forceRightToLeft
或UIView.appearance()
。
根据semanticContentAttribute的Apple文档:
视图内容的语义描述,用于确定在从左到右和从右到左布局之间切换时是否应该翻转视图。
【讨论】:
解释为什么设备上第一个显示的单元格的布局很好。 (另外,我检查了一下,并没有意外设置语义。) @meaning-matters 看起来你对帮助你的人不够友好。当你甚至没有提供足够的信息时,他怎么解释?你应该先给出更多代码吗? @trungduc 没有更多代码,这个答案没有涵盖我提供的所有细节。我在 4 小时前再次询问,正在等待他的答复。以上是关于故事板自动布局将视图放置在表格单元格中,并将尾随到超级视图约束固定到最左侧的主要内容,如果未能解决你的问题,请参考以下文章