带有上一个和下一个按钮的 UIPageViewController
Posted
技术标签:
【中文标题】带有上一个和下一个按钮的 UIPageViewController【英文标题】:UIPageViewController with previous and next buttons 【发布时间】:2017-11-14 01:43:37 【问题描述】:如何向 UIPageViewController 添加上一个和下一个按钮,并且只有在按钮单击时页面才会随着水平滚动效果而变化。任何人都可以建议我参考任何教程吗? 由于我是 Swift 新手,我不知道如何实现这一点。请帮忙..
【问题讨论】:
是否需要使用 pageViewController 是的...应该使用PageviewController。 查询解决了吗? 【参考方案1】:获取下一个和上一个 UIViewController
你应该知道当前页和上一页/下一页是什么。
示例:
@IBAction func onNext(btn:UIButton)
let currentVC = self
let nextVC = getNextVC(from: currentVC)//implement it!
// do stuff... (turn page)
翻页
这个很简单,UIPageViewController
提供了这样一个功能。
示例:
pageViewController.setViewControllers([nextVC], direction: .forward, animated: true, completion: nil)
【讨论】:
感谢您的回复。作为 Swift 的新手,我不知道如何实现这一点。你能解释一下吗?【参考方案2】:在这里您可以像使用按钮一样进行操作:
func addUIButton()
//next button
let myButton = UIButton()
myButton.setTitle("Next", for: UIControlState.normal)
myButton.setTitleColor(UIColor.red, for: .normal)
myButton.frame = CGRect(x: self.view.frame.size.width - 50, y: self.view.frame.size.height/2 - 50, width: 50, height: 50)
myButton.addTarget(self, action: #selector(pagesViewController.pressed(sender:)), for: .touchUpInside)
self.view.addSubview(myButton)
self.view.bringSubview(toFront: myButton)
func addSecondUIButton()
//previous button
let myButton = UIButton()
myButton.setTitle("Previous", for: UIControlState.normal)
myButton.setTitleColor(UIColor.red, for: .normal)
myButton.frame = CGRect(x: 20, y: self.view.frame.size.height/2 - 50, width: 100, height: 50)
myButton.addTarget(self, action: #selector(pagesViewController.Secondpressed(sender:)), for: .touchUpInside)
self.view.addSubview(myButton)
self.view.bringSubview(toFront: myButton)
按钮处理程序:
func pressed(sender: UIButton!) //next button
switch VC.CurrentVC
case page1:
VC.CurrentVC = page2
getNextVC(newIndex: page2)
break
case page2:
VC.CurrentVC = page3
getNextVC(newIndex: page3)
break
case page3:
VC.CurrentVC = page1
getNextVC(newIndex: page1)
break
default:
VC.CurrentVC = page1
getNextVC(newIndex: page1)
func Secondpressed(sender: UIButton!) //previous button
switch VC.CurrentVC
case page1:
VC.CurrentVC = page3
getNextVC(newIndex: page3)
break
case page3:
VC.CurrentVC = page2
getNextVC(newIndex: page2)
break
case page2:
VC.CurrentVC = page1
getNextVC(newIndex: page1)
break
default:
VC.CurrentVC = page1
getNextVC(newIndex: page1)
处理移动到nextVC的方法
func getNextVC(newIndex: UIViewController)
setViewControllers([newIndex], direction: UIPageViewControllerNavigationDirection.forward, animated: false, completion: nil)
结构类: //存储当前的vc
import Foundation
import UIKit
struct VC
static var CurrentVC = UIViewController()
演示项目链接 - https://drive.google.com/open?id=1pWLMcU2eny65zqdjxOMbnry2FwhkRjye
参考链接查看
输出截图
【讨论】:
以上是关于带有上一个和下一个按钮的 UIPageViewController的主要内容,如果未能解决你的问题,请参考以下文章
将上一个和下一个按钮添加到 li item php 或 jquery
在android studio中使用上一个和下一个按钮打开不同的pdf文件?