我已经阅读了我发现的关于UIPageViewController的每个教程,但是它们只展示了基础知识,我想创建类似新的twitter应用程序的东西:
UIPageViewController嵌入到导航控制器中,导航栏的标题基于当前页面,并且那些页面点也在那里,用户可以点击当前页面上的项目(项目视图/集合视图中的项目)来查看详细信息.
我能够得到类似的东西,每个页面都有收集视图,并显示一些项目的细节反映在导航栏中,有正确的标题和"<"按钮,但我无法根据当前更改标题显示的页面
拜托,您能用几步/控制器的基本结构来描述我如何做到这一点吗?
我正在尝试UIPageViewController
在具有多个视图控制器的Swift应用程序中使用它.我的故事板(firstViewController
和secondViewController
)上有2个视图控制器,它们都嵌入在自己的导航控制器中.他们有故事板标识符" FirstViewController
"和" SecondViewController
".我的故事板上还有一个带identifierPageView
控制器的页面视图控制器,并将导航设置为水平,过渡样式在属性检查器中滚动.FirstViewController
是应用程序的根视图控制器
我想firstViewController
成为页面视图控制器的第一页,所以我写了这样的类:
import Foundation
import UIKit
class FirsttViewController: UITableViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate {
override func viewDidLoad() {
let pageViewController: PageViewController = self.storyboard.instantiateViewControllerWithIdentifier("PageViewController") as PageViewController
pageViewController.delegate = self
var viewControllers: [UIViewController] = [self]
pageViewController.setViewControllers(viewControllers, direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: nil)
pageViewController.view.frame = CGRectMake(0, 0, self.view.frame.width, self.view.frame.height)
self.addChildViewController(pageViewController)
self.view.addSubview(pageViewController.view)
pageViewController.didMoveToParentViewController(self)
}
func pageViewController(pageViewController: UIPageViewController!, viewControllerAfterViewController viewController: UIViewController!) -> UIViewController! {
let secondViewController: SecondViewController = self.storyboard.instantiateViewControllerWithIdentifier("SecondViewController") as SecondViewController …
Run Code Online (Sandbox Code Playgroud) 我需要一种方法来使UIPageViewController重用控制器以节省内存,因为我有大量的页面要显示!我做了UIPageViewController的基本实现,但无法设法使控制器可重用,请咨询!
我有一个UIButton
嵌入在一个视图控制器内UIPageViewController
.页面视图控制器处于滚动模式(所以没有手势).当我触摸按钮时,将调用操作方法,但按钮不会发生可见的状态更改(突出显示状态).这意味着按钮看起来没有动过.仅在iOS7中观察到.有什么解决方法吗?
案例1:在普通ViewController中使用和不使用Tap的Button的行为
案例2:在其中一个PageViewController的viewController中,使用和不使用Tap的Button的行为
我有一个简单的UIPageViewController,它在页面底部显示默认的UIPageControl.我想知道是否可以修改UIPageControl的位置,例如在屏幕顶部而不是底部.我一直在环顾四周,只发现旧讨论说我需要创建自己的UIPageControl.这对iOS8和9来说更简单吗?谢谢.
根据苹果的文档在这里,我们应该能够通过连接网点页面视图控制器加入到故事板,然后选择设置数据源.
使用故事板创建页面视图控制器界面
基于页面的应用程序Xcode模板创建一个新的项目,其中页面视图控制器作为初始场景.
要将页面视图控制器添加到现有故事板,请执行以下操作:
- 将页面视图控制器拖出库.将页面视图控制器场景添加到故事板.
- 在"属性"检查器中,设置适当的选项.
- (可选)通过连接相应的插座来设置委托,数据源或两者.
- 通过在"属性"检查器中选择"是初始视图控制器"选项(或以其他方式在用户界面中显示视图控制器)将其显示为第一个视图控制器.
然后我像这样定义了一个UIPageViewController子类
@interface DetailsPageViewController : UIPageViewController <UIPageViewControllerDataSource>
Run Code Online (Sandbox Code Playgroud)
但是当我尝试连接数据源插座时,它不会突出显示控制器或允许连接它.我也试过在其他控制器上实现UIPageViewControllerDataSource,但我有同样的问题,无法连接插座.
有人可以帮忙吗?
objective-c interface-builder uistoryboard uipageviewcontroller
我已经实现了UIPageViewController
包含两个页面的内容.在最右边的页面上,我可以向右滑动,然后向后拉页面,这样当我释放时,它会反弹回来.当我向左滑动时左侧页面出现同样的情况.(弹跳就像到达野生动物园页面底部时发生的情况)
有没有办法禁用反弹效果?谢谢!
我正在构建一个新的应用程序,并希望在开头有一个"欢迎演练",其中我有一个故事板,其中包含一系列在UIPageViewController中呈现的图像.我有它加载图像和所有这些都很好,但是只要它们超出"前一个"或"下一个"ViewController,图像就会调整大小.我正在Swift
用来发展.
以下是该问题的视频:http://youtu.be/dXcjjT-8Bk0
我尝试了所有不同的视图模式(Aspect fit,aspect fill,redraw等),它们的行为都相同.
我正在使用Auto-Layout + Size Classes,因为我希望简化不同屏幕尺寸的开发.我目前的限制使UIImage以正确的大小显示:
Align Centre X to Superview
Top Space to Top Layout Guide
Bottom Space to Bottom Layout Guide + Equals: 50
Run Code Online (Sandbox Code Playgroud)
我正在使用Aspect Fit
它,它给了我正确的图像(在他们完成'调整大小行为'之后.
任何人都可以进一步指导我如何解决这个问题?
我有一个按预期工作的UIPageViewController.我可以向左和向右滚动,didFinishAnimating
当我滚动每个方向时调用委托方法.但是,如果我滚动太快,我最终会在didFinishAnimating
未调用的页面上,尽管它会被调用所有以前的页面.有谁知道为什么会发生这种情况?
我认为didFinishAnimating
无论如何都会在每次页面转换时调用(例如,即使转弯中止).
我正在寻找一种UIPageViewController
用a 替换原生水平分页的方法UICollectionView
.
到目前为止,我做了以下事情:
let layout = UICollectionViewFlowLayout()
layout.scrollDirection = .horizontal
layout.itemSize = collectionView.frame.size
layout.minimumLineSpacing = 0
layout.minimumInteritemSpacing = 10
collectionView.setCollectionViewLayout(layout, animated: false)
collectionView.isPagingEnabled = true
collectionView.alwaysBounceVertical = false
Run Code Online (Sandbox Code Playgroud)
这工作正常,我得到水平分页效果.
现在我想要添加的页面之间的水平空间(像你将做UIPageViewControllerOptionInterPageSpacingKey
的UIPageViewController
)
到目前为止,我无法在不损坏分页效果的情况下添加空格.我正在寻找与以下相同的行为UIPageViewController
:单元格应该填满整个屏幕宽度,并且单元格之间的空间应该只在切换页面时可见.
uikit ios uipageviewcontroller uicollectionview uicollectionviewlayout
ios ×8
objective-c ×3
swift ×3
ios7 ×2
bounce ×1
cocoa-touch ×1
iphone ×1
uiimageview ×1
uikit ×1
uistoryboard ×1