gpt4 book ai didi

iOS 自动布局坐标和以编程方式绘制 View

转载 作者:行者123 更新时间:2023-11-29 01:15:56 25 4
gpt4 key购买 nike

我的 View 在 Storyboard 中受到自动布局的限制。我想绘制一个核心图形元素并将其添加到与 View 部分重叠的位置。问题在于定位。在 viewdidlayoutsubviews 完成之前, Storyboard View 不会获得其最终大小。

如果我尝试在 viewdidlayoutsubviews 方法中绘制重叠元素,viewdidlayoutsubviews 将再次调用并无限循环。如果我在 viewDidAppear 方法中添加重叠元素,它确实可以正常工作。 viewDidAppear 的问题是元素绘制到屏幕上有半秒的延迟。我希望它能够与屏幕的其余部分同时绘制和显示。

我对如何继续有一些想法

  1. 在不可见的情况下将元素绘制到另一个线程上,然后在布局完成后将其移动到所需位置并使其可见。

  2. 从 Storyboard中删除元素并以编程方式创建所有元素。

  3. 在 viewDidLoad 方法中创建具有自动布局的元素,并让自动布局系统对其进行定位。 (不太确定我会怎么做)

从我所在位置到屏幕同时绘制所有元素的最佳推荐方法是什么?

最佳答案

如何从 viewDidLayoutSubviews 调用一次 GC 元素(或任何绘制它的方式)的 setNeedsDisplay()

你可以像这样使用GCD的dispatch_once:

var token : dispatch_once_t = 0
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
dispatch_once(&token, { () -> Void in
cgthing.setNeedsDisplay()
}) ...
}

关于iOS 自动布局坐标和以编程方式绘制 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35187351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com