【问题标题】:Handle the spacing between elements for a certain condition处理特定条件下元素之间的间距
【发布时间】:2017-03-28 05:07:28
【问题描述】:

我正在为我的应用构建一个 FeedViewController。

这个屏幕由一个tableView(或一个collectionView)组成,它显示用户的帖子。帖子总是有内容的,它可以包含也可以不包含图像。

我想知道当没有要显示的图像时,处理这种情况的最佳方法是什么,如何处理表格视图单元格的高度并确保每个项目之间的间距保持不变?

我的尝试:

我创建了一个表格视图单元的子类,并在其中添加了一些约束。在我的 FeedViewController 的 cellForRowAtIndexPath 方法中,我添加了一个“if 语句”来检查 postImageView.image 是否为 nil,并相应地更新帖子图像的高度约束。问题是,正如您在下面的屏幕截图中看到的那样,间距与带有图像的单元格和没有图像的单元格略有不同。我希望元素之间的间距完全相同,无论帖子是否附有图像。

你们会如何解决这个问题?

感谢您的帮助,

J.

【问题讨论】:

    标签: ios uitableview feed spacing


    【解决方案1】:

    如果您使用自动布局,那么您需要为按钮标签提供底部和顶部约束。或者,如果您使用自动调整大小,那么您需要修复按钮标签的位置。 @jellyfish6

    【讨论】:

    • 谢谢@Vishal,我实际上在 AutoLayout 中使用约束并告诉我的视图不要自动创建约束(translatesAutoresizingMaskIntoConstraints = false),但我的底部标签确实有底部和顶部约束,你呢有什么想法吗?
    【解决方案2】:

    我认为您已经为“底部标签”提供了 BottomConstraint,这就是它具有不同间距的原因。 我猜不是给底部约束而是提供顶部约束或两者并优先管理它。

    【讨论】:

    • 感谢您的回复@GowthamNamuri!您能否进一步解释一下,以及如何使用“优先级”管理约束?
    • 为底部约束提供的优先级低于按钮的顶部约束。基本上1000将是最高优先级。每当发生冲突时,它都会使用具有最高优先级的约束。否则您可以采用约束的 IBOutlet 并相应地更改它的常量。
    • 谢谢我不知道约束优先级,现在在文档中检查了它,这很有意义!能否请您向我展示一个示例,说明如何将这个概念应用到我的示例中?这对我有很大帮助!
    • 您如何调整单元格的大小?如果 imageView 中没有图像,则变小?。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    • 2021-10-16
    • 1970-01-01
    相关资源
    最近更新 更多