【发布时间】:2020-09-13 17:09:45
【问题描述】:
在 UITableViewCell 中,我有一个 UIView 容器,其中包含顶部的 UIImageView 和底部的 UILabel。当 UILabel 不包含文本时,我想删除 UILabel 并将 UImageView 调整到我的 UIView 容器的底部。
在我的 TableViewCell 中,我有这个:
let x = imageViewPostPreview.bottomAnchor.constraint(equalTo: viewPreviewOverlay.topAnchor, constant: 0)
if postText == "" {
x.isActive = true
imageViewPostPreview.layer.maskedCorners = [.layerMaxXMinYCorner, .layerMinXMinYCorner, .layerMaxXMaxYCorner, .layerMinXMaxYCorner]
self.layoutSubviews()
self.layoutIfNeeded()
} else if postText != "" {
x.isActive = false
imageViewPostPreview.layer.maskedCorners = [.layerMaxXMinYCorner, .layerMinXMinYCorner]
self.layoutSubviews()
self.layoutIfNeeded()
}
}
这段代码在加载初始 UITableViewCell 时有效,但是当我滚动 UITableView 时,单元格会丢失初始布局。
如何正确设置布局,使布局保持滚动状态?
编辑:
初始单元格,正确:
滚动后,布局错误:
【问题讨论】:
-
请分享您的 cellForRowAt 代码。并且不要使用屏幕截图的图片。很难阅读。
标签: swift uitableview layout