gpt4 book ai didi

ios - 将容器置于 View 前面

转载 作者:搜寻专家 更新时间:2023-10-30 21:57:44 27 4
gpt4 key购买 nike

我有三个 Controller 。一个是 HomeViewController 启动 BlahPageViewController 并且它是单独的页面。其他两个 Controller (BlahPageViewControllerBlahItemViewController 专门处理 UIPageViewController。在我的 HomeViewController 中,我有以下内容初始化页面的代码。

private func setPageViewController() {
let blahPageController = self.storyboard!.instantiateViewControllerWithIdentifier("BlahPageController") as! BlahPageViewController

blahPageController.dataSource = self

blahPageController.blahs = blahs

if blahs.count > 0 {
let firstController = getItemController(0)!

let startingViewControllers: NSArray = [firstController]

blahPageController.setViewControllers(startingViewControllers as [AnyObject], direction: .Forward, animated: false, completion: nil)
}

// Setting page view controller to front of app
pageViewController = blahPageController

addChildViewController(pageViewController!)

self.view.addSubview(pageViewController!.view)

pageViewController!.didMoveToParentViewController(self)

// Now lets bring that container to the front.
self.view.bringSubviewToFront(self.headerBar)
// BUT IT DOESN'T WORK!!!!

}

我不得不想象容器位于页面的最前端。但是,当我运行该应用程序时,容器内的按钮不可点击。

下面的 Storyboard。

enter image description here

调试 View 截图。

enter image description here

这是怎么回事?有没有更好的方法来处理这个问题。当用户翻阅页面但容器与 BlahItemViewController 重叠时,我不希望这些按钮移动?我该如何解决这个问题?

最佳答案

在您的 setPageViewController() 函数中,您使用 addSubview() 将 UIPageViewController 的 View 添加到您的 ViewController 的 View 中。这会将 View 置于所有其他 View 之上。

基本上,您有两种选择可以避免这种情况。使用

将其作为第一个 View 插入
self.view.insertSubview(pageViewController!.view, atIndex: 0)

或低于特定 View 使用

self.view.insertSubview(pageViewController!.view, belowSubview: self.headerbar)

这应该可以解决问题。

更新

还要确保为容器 View 启用了用户交互。 Interface Builder 中有一个设置,但您也可以在代码中进行设置:

self.headerbar.userInteractionEnabled = true

关于ios - 将容器置于 View 前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31063548/

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