【问题标题】:iOS Swift UIImageView with aspect ratio not getting hide长宽比不隐藏的iOS Swift UIImageView
【发布时间】:2020-03-17 01:24:31
【问题描述】:

在我的应用程序中,我想显示自定义按钮,例如:

  • 仅标题按钮
  • 带有图片+标题的按钮
  • 仅图像按钮

为了创建这样的按钮,我使用了 UIView 并在其下添加了 UIImageView 和 24:48 的 aspect ratio 和 UILable。

对于按钮类型图像 + 标题,一切正常,但对于仅标题按钮,我的 UIIlmageView 没有被隐藏,即使我已经添加了

        leftImageviewWidthConstaraint.constant = 0

        leftImageviewWidthConstaraint.isActive = false 

我还缺少什么。请提出建议。

【问题讨论】:

    标签: ios swift aspect-ratio


    【解决方案1】:

    确保标签的 leading 或 left 约束连接到 trailing 或 right 约束图像视图的左侧,而不是容器视图的左侧。通过调用leftImageviewWidthConstaraint.constant = 0 它应该可以工作。并且不要停用约束,您可能会遇到崩溃或其他 UI 问题。我刚刚试了一下,它对我有用:

    【讨论】:

      【解决方案2】:

      我要做的是将 UIImageView 和 UILabel 添加到水平 UIStackView 中,并按比例分布。这样,如果你给 UIImageView 一个固定的大小,UILabel 将获得剩余的空间,如果你隐藏 UIImageView,UILabel 将获得 StackView 的整个空间。如果你隐藏 UILabel 也是一样。

      希望对你有帮助!

      【讨论】:

      • 我能否在 UIStackView 中将 UIImageView 的大小设为 24:48,这是要求,图像应为 24 * 24
      【解决方案3】:

      当您执行leftImageviewWidthConstaraint.isActive = false 时,您会关闭约束,因此自然内容大小可能会导致它仍然可见..

      那就这样吧

      leftImageviewWidthConstaraint.constant = 0 更改值并在之后禁用它。

      你也可以在调整约束后试试self.layoutIfNeeded();在极少数情况下会有所帮助

      【讨论】:

      • 好的,我试试。
      • 你在哪里定义你的leftImageviewWidthConstaraint
      猜你喜欢
      • 2015-12-21
      • 1970-01-01
      • 2016-05-30
      • 1970-01-01
      • 2011-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-23
      相关资源
      最近更新 更多