如何在 UIPageViewController 上添加按钮?
How can I add a button on top of a UIPageViewController?
我有一个包含 3 个页面的页面视图控制器。我想要一个 'floating' 按钮显示在所有按钮之上。我试过为 PageView 使用容器视图,但这似乎不起作用。我还能如何让按钮在所有 3 个页面上保持可见?
我试过使用这个问题中所述的容器视图:
UIButton across all pages of UIPageViewController
您可以创建一个单独的 ViewController,添加一个容器视图,按住 Ctrl 键并单击并拖动到您的页面ViewController,然后单击 "Embed"。将任何按钮添加到新的单独 ViewController 并将 ViewController 与新的 swift class 相关联,并在那里管理按钮功能。
如果您的页面ViewController 当前是您的初始 ViewController(如果您使用的是导航控制器,则为根视图),您只需更改它,以便现在单独的 ViewController初始 viewController,包含嵌入的 PageViewController,以及您需要的任何按钮。当您滚动时,它们将保持静止在视图顶部。
如果您使用的是 Storyboard,它应该看起来像这样:
除了我的其他答案,您还可以通过编程方式添加按钮。
声明:
let button = UIButton()
如果需要,创建一个名为 setupView() 的函数
private func setupView() {
//Here we set up the size and attributes of the button.
currencyButton.frame = CGRect(x: self.view.frame.size.width - 60, y: 60, width: 50, height: 50)
currencyButton.backgroundColor = UIColor.red
currencyButton.setTitle("YourButtonTitle", for: .normal)
currencyButton.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
self.view.addSubview(currencyButton)
}
并使用按钮:
@objc func buttonAction(sender: UIButton!) {
//Do whatever.
print("ButtonTapped")
}
最后,确保在 viewDidLoad() 中调用了 setupView():
override func viewDidLoad() {
super.viewDidLoad()
setupView()
self.delegate = self
configurePageControl()
self.dataSource = self
}
当您滚动页面视图时,此按钮将保留在屏幕上。
让我知道这是否回答了您的问题。
我有一个包含 3 个页面的页面视图控制器。我想要一个 'floating' 按钮显示在所有按钮之上。我试过为 PageView 使用容器视图,但这似乎不起作用。我还能如何让按钮在所有 3 个页面上保持可见?
我试过使用这个问题中所述的容器视图: UIButton across all pages of UIPageViewController
您可以创建一个单独的 ViewController,添加一个容器视图,按住 Ctrl 键并单击并拖动到您的页面ViewController,然后单击 "Embed"。将任何按钮添加到新的单独 ViewController 并将 ViewController 与新的 swift class 相关联,并在那里管理按钮功能。
如果您的页面ViewController 当前是您的初始 ViewController(如果您使用的是导航控制器,则为根视图),您只需更改它,以便现在单独的 ViewController初始 viewController,包含嵌入的 PageViewController,以及您需要的任何按钮。当您滚动时,它们将保持静止在视图顶部。
如果您使用的是 Storyboard,它应该看起来像这样:
除了我的其他答案,您还可以通过编程方式添加按钮。
声明:
let button = UIButton()
如果需要,创建一个名为 setupView() 的函数
private func setupView() {
//Here we set up the size and attributes of the button.
currencyButton.frame = CGRect(x: self.view.frame.size.width - 60, y: 60, width: 50, height: 50)
currencyButton.backgroundColor = UIColor.red
currencyButton.setTitle("YourButtonTitle", for: .normal)
currencyButton.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
self.view.addSubview(currencyButton)
}
并使用按钮:
@objc func buttonAction(sender: UIButton!) {
//Do whatever.
print("ButtonTapped")
}
最后,确保在 viewDidLoad() 中调用了 setupView():
override func viewDidLoad() {
super.viewDidLoad()
setupView()
self.delegate = self
configurePageControl()
self.dataSource = self
}
当您滚动页面视图时,此按钮将保留在屏幕上。 让我知道这是否回答了您的问题。