UIStackView 不调用自定义 UIView 的绘制



我有一个带有自定义draw(_ rect: CGRect)方法的UIView,它可以工作。

但是,当我将其放置在UIStackView中时,不会调用其绘制方法。UILabel或UIImage在同一堆栈视图中正常显示。

在界面生成器中,它甚至在堆栈视图中绘制,但在设备上运行时,它不是。

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

通过首先添加一个包装器视图来解决它,然后将其添加到 UIStackView 后,我将我的自定义绘图视图添加到包装器视图中。(这是用 C# 编写的,但我很确定它无论如何都会有所帮助)

UIView wrapperView = new UIView(f);
CanvasStackView.AddArrangedSubview(wrapperView);
CGRect f = new CGRect(CGPoint.Empty,new CGSize(CanvasStackView.Frame.Size.Width, height));
MyCustomView b = new MyCustomView(f);
wrapperView.AddSubview(b);

我遇到了同样的问题。检查视图的约束。我添加了前导/尾随空格和高度来解决此问题。

相关内容

  • 没有找到相关文章

最新更新