gpt4 book ai didi

ios - viewdidload后如何更新uiview?

转载 作者:行者123 更新时间:2023-11-29 11:29:00 24 4
gpt4 key购买 nike

我正在做一个我没有开始的项目,现在我们在第一个 VC 上发现了一个错误:第一个 View Controller 有一个顶部栏菜单和一个底部栏菜单。其余的是一个容器 View ,显示所需的 View Controller 。在 viewDidLoad 中调用此方法:


self.currentIndex = 0;

CGRect screenBounds = [[UIScreen mainScreen] bounds];
CGRect contentViewFrame = screenBounds;

// iPhone X
if (@available(iOS 11.0, *)) {

UIWindow *window = [UIApplication sharedApplication].keyWindow;
CGFloat topPadding = window.safeAreaInsets.top;
CGFloat bottomPadding = window.safeAreaInsets.bottom;

contentViewFrame.origin.y = topPadding + 20.0; // 20 p for status bar
contentViewFrame.size.height -= (rootView.bottomBarView.frame.size.height + (topPadding + 20.0) + bottomPadding); // topPadding + 20 statusbar

} else {

contentViewFrame.size.height -= rootView.bottomBarView.frame.size.height;

}

self.conversationVC = [[VOCConversationVC alloc] initWithFrame: contentViewFrame];
self.diaryVC = [[VOCDiaryVC alloc] initWithFrame: contentViewFrame];
self.managementVC = [[VOCManagementVC alloc] initWithFrame: contentViewFrame];

self.viewControllerSelected = VOCViewControllerSelectedCommunication;
}

问题在ViewDidLoad 点,topPaddingbottomPadding 仍然是0,因此帧没有正确设置。如果我之后更改 contentViewFrame 高度,它不会对 View 进行任何更改。我试过:

viewDidLayoutSubviewslayoutIfNeededlayoutSubviews

和其他一些没有帮助的方法。当我打印 contentViewFrame 高度时,它发生了变化但没有可见效果,所以我错过了我做错了什么......也许上述方法之一我没有使用正确的 View 或在适当的时候?还是其他原因?

谢谢

最佳答案

您可以尝试将此代码移动到 viewWillAppear:animatedviewDidAppear:animated

IIRC,您尝试访问的变量将在调用其中一个(或两个)方法时设置。

关于ios - viewdidload后如何更新uiview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55547658/

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