UIStackView 不调用自定义 UIView 的绘制

Posted

技术标签:

【中文标题】UIStackView 不调用自定义 UIView 的绘制【英文标题】:UIStackView not calling draw of custom UIView 【发布时间】:2019-01-21 11:14:41 【问题描述】:

我有一个带有自定义 draw(_ rect: CGRect) 方法的 UIView,该方法有效。

但是,当我将它放在 UIStackView 中时,它的绘制方法不会被调用。同一个stack view内的UILabel或UIImage正常显示。

在 Interface Builder 中,它甚至在堆栈视图中绘制,但在设备上运行时,它不是。

【问题讨论】:

这里同样的问题,不知何故其他地方都没有提到。 我遇到了同样的问题。我有一些使用 PaintCode 中的代码绘制的自定义视图。它们在 UIStackView 之外完美地绘制,但是在 UIStackView 内部时,甚至从未调用 draw() 方法(尽管它们确实出现在情节提要中)。你找到解决办法了吗? 【参考方案1】:

draw(_ rect: CGRect) 不调用addArrangedSubviewstack。 相反,您可以将代码放入layoutSubviews

【讨论】:

以上是关于UIStackView 不调用自定义 UIView 的绘制的主要内容,如果未能解决你的问题,请参考以下文章

添加 UIStackView 作为 UIBarButtonItem 的自定义视图

以编程方式使用堆栈视图

UIStackView背景色和自定义间距

通过将 UIView 过渡添加到 UIStackView 来制作动画

iOS - UIView 不显示在 UIStackView 内

如何以编程方式将自定义 UIView 添加到 UIScrollView 之上的 Stackview?