gpt4 book ai didi

ios - UIWindow 正在重置我的 uiview

转载 作者:行者123 更新时间:2023-11-28 22:43:10 26 4
gpt4 key购买 nike

我有两个 View Controller ,其中一个是另一个的 subview 。两个 View 都是通过 nibs 加载的。 subview Controller 在父 View Controller 的 viewDidLoad 中设置了它的位置。当父 View Controller 设置为 UIWindow 的 Root View Controller 时,它会将 subview Controller 的 View 位置重置回 {0.0, 0.0}

我知道它是窗口,因为我决定观察 subview Controller 的 View 的框架并添加了一个断点(观察者是父 View Controller )。堆栈跟踪报告:

#0  0x000d34e0 in -[ParentViewController observeValueForKeyPath:ofObject:change:context:]
#1 0x32866eb0 in NSKeyValueNotifyObserver ()
#2 0x32866b0a in NSKeyValueDidChange ()
#3 0x32840eca in -[NSObject(NSKeyValueObserverNotification) didChangeValueForKey:] ()
#4 0x39b87d9e in -[UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:] ()
#5 0x39b4075e in -[UIView(Internal) _didMoveFromWindow:toWindow:] ()
#6 0x39b405be in -[UIView(Internal) _didMoveFromWindow:toWindow:] ()
#7 0x39b3ae4a in -[UIView(Hierarchy) _postMovedFromSuperview:] ()
#8 0x39b227dc in -[UIView(Internal) _addSubview:positioned:relativeTo:] ()
#9 0x39b222c2 in -[UIView(Hierarchy) addSubview:] ()
#10 0x39b7fe42 in -[UIWindow addRootViewControllerViewIfPossible] ()
#11 0x39b7bae4 in -[UIWindow _setHidden:forced:] ()

如果我不打算在 viewDidLoad 中设置位置,我应该在哪里设置它?

更新:我以为只是改变了位置,但通过相同的路径,正在设置维度。在 Nib 中,它设置为横向尺寸,但框架在 {0.0, 0.0} 处设置为纵向尺寸。

最佳答案

我建议在 viewWillAppearviewDidAppear 中执行此操作。当调用viewDidLoad时, View 只是加载到内存中,还没有被绘制到屏幕上,所以会出现这样的问题。

关于ios - UIWindow 正在重置我的 uiview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13913261/

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