使用自动布局时无法隐藏或删除 UICollectionViewCell 中的视图
Unable to hide or remove views in UICollectionViewCell when using Autolayout
我在 UICollectionViewCell 中有一个 UIImageView(我们称它为 myImageView),它具有必要的约束。我正在使用故事板并将视图和代码与 viewWithTag
链接起来。
在 cellForItemAtIndexPath 中,有一个条件,例如:
if (1 + 1 == 2)
myImageView.hidden = YES;
else
myImageView.hidden = NO
我已设置断点并验证代码已执行,但 myImageView 没有隐藏第一批可见单元格(假设它们都满足条件)。
当我向下滚动以显示新的(或重复使用的)单元格时,一切都按预期工作(满足条件并假设隐藏的单元格被隐藏,反之亦然)。当我向上滚动以再次显示第一批单元格时,它也按预期工作。
问题只出在第一批可见单元格上。
我已经尝试 removeFromSuperview
而不是隐藏单元格,但也没有成功。
在这种情况下使用自动布局和 UICollectionViews 时是否有正确的方法或最佳实践?
由于我们无法将标签设置为约束,我们别无选择,只能将 UICollectionViewCell 子类化,并且 link 将约束设为 IBOutlet。
然后在cellForRowAtIndexPath
:
cell.imageViewHeightConstraint.constant = imageViewShouldHide ? 0 : cell.imageView.image.size.height;
简单地说,在n值和0之间切换视图的高度约束,而不是隐藏在之间是 & 否.
在采用自动布局时,我了解到我们应该停止考虑框架和矩形,但我不确定是否要隐藏视图。感谢@Paulw11 的提示!
我在 UICollectionViewCell 中有一个 UIImageView(我们称它为 myImageView),它具有必要的约束。我正在使用故事板并将视图和代码与 viewWithTag
链接起来。
在 cellForItemAtIndexPath 中,有一个条件,例如:
if (1 + 1 == 2)
myImageView.hidden = YES;
else
myImageView.hidden = NO
我已设置断点并验证代码已执行,但 myImageView 没有隐藏第一批可见单元格(假设它们都满足条件)。
当我向下滚动以显示新的(或重复使用的)单元格时,一切都按预期工作(满足条件并假设隐藏的单元格被隐藏,反之亦然)。当我向上滚动以再次显示第一批单元格时,它也按预期工作。
问题只出在第一批可见单元格上。
我已经尝试 removeFromSuperview
而不是隐藏单元格,但也没有成功。
在这种情况下使用自动布局和 UICollectionViews 时是否有正确的方法或最佳实践?
由于我们无法将标签设置为约束,我们别无选择,只能将 UICollectionViewCell 子类化,并且 link 将约束设为 IBOutlet。
然后在cellForRowAtIndexPath
:
cell.imageViewHeightConstraint.constant = imageViewShouldHide ? 0 : cell.imageView.image.size.height;
简单地说,在n值和0之间切换视图的高度约束,而不是隐藏在之间是 & 否.
在采用自动布局时,我了解到我们应该停止考虑框架和矩形,但我不确定是否要隐藏视图。感谢@Paulw11 的提示!