R.K*_*aka 1 iphone objective-c ios swift3
应用启动时,我使用此方法设置根视图控制器。
func showRootViewController() {
let sb = UIStoryboard.init(name: "Main", bundle: nil)
let mainViewController = sb.instantiateInitialViewController()!
self.window?.rootViewController = mainViewController
self.window?.makeKeyAndVisible()
}
Run Code Online (Sandbox Code Playgroud)
在主视图控制器中,我编写了将视图设置为容器视图的代码
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)
}
}
Run Code Online (Sandbox Code Playgroud)
让我们看一下视图,我有用于添加子视图的容器视图。我设置背景以帮助所有人解决容器视图的框架

子视图的设计如下:

结果不符合我的预期。ContainerView走到了某个地方(我真的不知道),子视图位于顶部。

请帮我。
contentView框架设置在错误的位置。您应该移动以下代码行:
contentView.frame = self.containerView.bounds
Run Code Online (Sandbox Code Playgroud)
在
override func func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
contentView.frame = self.containerView.bounds
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2398 次 |
| 最近记录: |