viewDidAppear&viewDidLoad正在初始化位置为时已晚

问题描述 投票:3回答:1

当加载到应用程序中时,我希望更新情节提要中的UIView多数民众赞成(并从情节提要中实例化)。>

我需要以动态方式放置一些图标(界面构建器尚未允许我这样做)。但是,如果我将代码放入viewDidAppear或viewDidLoad中,似乎调用得太晚了。

这里是加载视图时的前几秒或两秒的情况:

“初始加载”

然后过一会儿,它到达了正确的位置(如代码被调用)。

“稍后再固定位置”

我的问题是,我需要在哪里初始化这些对象的位置,以便它们不会在一秒钟后捕捉到。 viewDidLoad和viewDidAppear为时已晚?为什么!? :)

override func viewDidAppear(animated: Bool)
{
    initView()
    _gridLines = false

}

func initView()
{
    _cameraFeed.initAfterLoad()
    //center the buttons on half distance between middle button and screen edge
    var middleDistance:CGFloat = _swapButton.frame.origin.x + _swapButton.frame.width/2
    _linesButton.frame.origin.x = middleDistance/2 - _linesButton.frame.width/2
    _flashButton.frame.origin.x = middleDistance + middleDistance/2 - _flashButton.frame.width/2
    _selectPhotos.frame.origin.x = middleDistance/2 - _selectPhotos.frame.width/2
}

欢迎使用Swift和objc!

我希望在故事板中加载(并从故事板实例化)更新UIView中的内容。我需要以动态方式放置一些图标(界面构建器...

ios objective-c xcode swift interface-builder
1个回答
4
投票

尝试将用于设置框架的代码放在viewWillAppear中,而不是viewDidAppear中。

© www.soinside.com 2019 - 2024. All rights reserved.