Swift UIView 从堆栈视图中消失
Posted
技术标签:
【中文标题】Swift UIView 从堆栈视图中消失【英文标题】:Swift UIView disappearing from Stack View 【发布时间】:2017-05-28 20:16:40 【问题描述】:我在垂直堆栈视图中有一个标签、一个图像视图和一个按钮。对齐设置为填充,分布设置为等间距,偏移量为 10。在我的故事板上,标签显示在顶部,图像在中心,按钮在底部。
但是,当在模拟器或设备上运行时,UIView 会完全从视图中剥离,因此标签出现在屏幕顶部,而按钮则显示在标签的正下方。
我唯一的约束是在堆栈视图上设置到父视图
编辑:忘了说 UIImageView 在 UIView 内
【问题讨论】:
图像视图是否包含图像?如果它是空的,它可能被分配零维度。 图像视图与其包含的UIView
之间是否有任何限制?
两者之间没有限制,因为我忽略了它,但是我现在已经将 imagview 固定到 uiview 上,它仍然没有出现。图像是空的,但在点击播放按钮时设置。 UIView 本身也不显示(我使用它是为了在 UIImage 动画时在 UIImage 周围显示静态边框)
必须在 UIView 上设置大小限制
【参考方案1】:
我遇到了类似的问题。我的 UIStackView 中的 UIView 只有一个 Width 约束,并且会在运行时消失。我发现我可以使用以下任一选项让它再次出现:
添加高度约束 添加顶部和底部约束【讨论】:
我有一个直到运行时才设置的图像视图。它总是会消失...另一方面,在编译时设置图像会正确显示图像。 顺便说一句,只有高度或顶部/底部约束并不能解决我的问题。在我的情况下,我还必须使用宽度约束 只需添加高度限制【参考方案2】:我在stackview 中的tableview 遇到了同样的问题。向视图添加了高度约束,现在一切正常
【讨论】:
【参考方案3】:在 UIView 边框上设置 Y 约束会导致它在点击播放按钮时出现,但它会超出屏幕边界。
我必须在 UIView 上设置大小限制才能正确显示。
【讨论】:
以上是关于Swift UIView 从堆栈视图中消失的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 swift 清除和重绘 UIView 的内容(存在于视图控制器中)?
使用 AVPlayer 播放的视频在 swift3 中从其容器视图中消失
iOS Swift 3 - 面板点击后删除覆盖 UIView