gpt4 book ai didi

ios - swift subview 不会完全填充父 View

转载 作者:行者123 更新时间:2023-12-01 17:28:49 30 4
gpt4 key购买 nike

当应用程序启动时,我使用此方法设置 Root View Controller 。

func showRootViewController() {
let sb = UIStoryboard.init(name: "Main", bundle: nil)
let mainViewController = sb.instantiateInitialViewController()!
self.window?.rootViewController = mainViewController
self.window?.makeKeyAndVisible()
}

在主视图 Controller 中,我有代码将 View 设置为容器 View
class MainViewController: UIViewController {

@IBOutlet weak var headerView: UIView!
@IBOutlet weak var containerView: UIView!

override func viewDidLoad() {
super.viewDidLoad()

}

override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)

if(userManager.hasRegistered()) {
let sb = UIStoryboard.init(name: "Login", bundle: nil)
self.setContentViewController(sb.instantiateInitialViewController()!)
} else {
let sb = UIStoryboard.init(name: "Registration", bundle: nil)
self.setContentViewController(sb.instantiateInitialViewController()!)
}

}

func setContentViewController(_ contentViewController: UIViewController) {
print(self.containerView.frame)
let contentView = contentViewController.view!
contentView.frame = self.containerView.bounds
self.containerView.addSubview(contentView)
}
}

让我们看看 View ,我有容器 View ,用于添加 subview 。我设置了背景帮助大家解决容器 View 的框架
main view

subview 设计如下:
result design

结果并不如我所料。 ContainerView 已经去了某个地方(我真的不知道), subview 在顶部移动。
result view

请帮我。

最佳答案

contentView 框架设置在错误的位置。
你应该移动这行代码:

contentView.frame = self.containerView.bounds


override func func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
contentView.frame = self.containerView.bounds
}

关于ios - swift subview 不会完全填充父 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43067005/

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