Как я могу добавить кнопку поверх UIPageViewController? - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть контроллер просмотра страниц с 3 страницами. Я хочу, чтобы над всеми ними была видна «плавающая» кнопка. Я пытался использовать контейнерное представление для PageView, но это не похоже на работу. Как еще можно заставить кнопку оставаться видимой на всех 3 страницах?

Я пытался использовать вид контейнера, как указано в этом вопросе: Кнопка UIB на всех страницах UIPageViewController

Ответы [ 2 ]

0 голосов
/ 09 сентября 2018

В качестве альтернативы моему другому ответу, вы можете добавить кнопку программно.

Declare:

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

}

Эта кнопка останется на экране при прокрутке просмотра страницы. Дайте мне знать, если это ответит на ваш вопрос.

0 голосов
/ 05 сентября 2018

Вы можете создать отдельный ViewController, добавить представление контейнера, щелкнуть, удерживая клавишу Ctrl, и перетащить его на страницу ViewController, а затем нажать «Вставить». Добавьте любые кнопки к вашему новому отдельному ViewController, свяжите ViewController с новым классом swift и управляйте функциями кнопок там.

Если ваш pageViewController в настоящее время является вашим начальным ViewController (или корневым представлением, если вы используете контроллер навигации), вы просто измените его так, чтобы отдельный ViewController стал теперь начальным viewController, содержащим встроенный PageViewController и любые необходимые вам кнопки. , Когда вы прокручиваете, они останутся неподвижными в верхней части экрана.

Если вы используете раскадровку, она должна выглядеть примерно так:

enter image description here

...