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

标签 ios objective-c iphone swift3

当应用程序启动时,我使用此方法设置 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/

相关文章:

ios - Facebook App 邀请通知在 ios 中不起作用

ios - 当点击 NSSetUncaughtExceptionHandler 时,使用 CoreGraphics 在屏幕上绘制

iPhone,调用另一个电话号码以响应第一个未接听的电话号码?

ios - React原生私有(private)部署

ios - 应用程序运行时如何在后台进行服务调用 ios

iphone - 如何在设备上安装应用程序时删除任何屏幕?

ios - 如何在 UIActionsheet 的按钮上添加复选标记,我可以在 iphone 中创建刻度标签?

iphone - 在 UITextField 中显示表情符号

ios - 如何在 iOS 上将图像更改 90 度?

iphone - 获取给定字体和矩形的字符串长度