我正在开发一个iPhone应用程序,并创建了一个UIPageViewController
(让我们称之为容器),其中包含许多UIViewController
页面(让我们称之为子页面)。子页面过渡样式是滚动。
现在,我喜欢做的是在容器的右上角创建一个按钮,而不是在子页面中。这个想法是,当子页面从一个页面滚动到另一个页面时,按钮将保持在屏幕上。如果我在其中一个子页面中创建按钮,则每个子页面都有自己的按钮,按钮将与子页面一起滚动。我想保留按钮而不移动容器,而子页面滚动。
我尝试使用故事板将按钮添加到容器中,但现在允许进入。我不能将它放在那里,我怀疑原因是因为容器是UIPageViewController
类型。
我怎么能用故事板做到这一点?
谢谢。
在代码中,将按钮添加到uipageviewcontroller
这是一个使用故事板的解决方案。你必须做一些代码,但它是最小的
class TouchThroughView: UIView {
override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
for subview in subviews {
if !subview.isHidden && subview.isUserInteractionEnabled && subview.point(inside: convert(point, to: subview), with: event) {
return true
}
}
return false
}
}
您的PageViewController将如下所示:
class MyPageViewController: UIPageViewController {
// step 3
@IBOutlet var touchThroughView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
// your regular page View Controller implementation
// step 4
stationaryView.translatesAutoresizingMaskIntoConstraints = false
// step 5
self.view.addSubview(touchThroughView)
// Step 6
touchThroughView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
touchThroughView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
touchThroughView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
touchThroughView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
}
}
你的故事板看起来像这样:
将按钮拖放到控制器(UIPageViewController)(确保它是好的控制器)。并添加一些约束来阻止它在顶角。