我正在开发一款iPhone应用,并创建了一个UIPageViewController
(我们称之为容器),其中包含多个UIViewController
页面(让我们称之为的子页面)。 子页面转换样式是滚动。
现在,我想要做的是在容器的右上角创建一个按钮,而不是在子页面中创建一个按钮。我们的想法是,当子页面从一个页面滚动到另一个页面时,该按钮将保留在屏幕上。如果我在其中一个子页面中创建了按钮,则每个子页面都有自己的按钮,该按钮将使用子页面滚动。我想保留按钮而不移动容器,而子页面滚动。
我尝试使用故事板将按钮添加到容器,但现在允许使用。我不能放弃它,我怀疑原因是因为容器属于UIPageViewController
类型。
如何使用故事板来做到这一点?
感谢。
答案 0 :(得分:14)
答案 1 :(得分:0)
在代码中,将按钮添加到uipageviewcontroller
答案 2 :(得分:0)
这是使用情节提要的解决方案。您必须执行一些代码,但这是最少的
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
}
}
您的故事板将如下所示:
答案 3 :(得分:-1)
将按钮拖放到控制器(UIPageViewController)(确保它是好的控制器)。并添加一些约束来阻止它在顶角。