【问题标题】:swift subview does not full-fill parent viewswift subview 不会完全填充父视图
【发布时间】:2017-08-21 09:02:13
【问题描述】:

当应用启动时,我使用这个方法来设置根视图控制器。

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

在主视图控制器中,我有代码将视图设置为容器视图

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)
    }
}

让我们看看视图,我有容器视图是用来添加子视图的。我设置了背景帮助大家解决容器视图的框架

子视图设计如下:

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

请帮帮我。

【问题讨论】:

    标签: ios objective-c iphone swift3


    【解决方案1】:

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

    contentView.frame = self.containerView.bounds
    

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

    【讨论】:

    【解决方案2】:

    您不能依赖 viewDidLoad 中的维度。 尝试 viewDidLayoutSubviews 代替。请注意,它可以被多次调用 我已经解决了这类问题。

    【讨论】:

      【解决方案3】:

      我使用单行的表格视图(您的子视图)来包装内容

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-10-27
        • 1970-01-01
        • 1970-01-01
        • 2021-10-26
        • 1970-01-01
        • 1970-01-01
        • 2012-07-15
        相关资源
        最近更新 更多