所以我正在尝试创建一个类似ibooks的阅读器,我需要在从webservice获取数据后动态更新UIPageViewController的内容.由于一系列原因,我必须在开头实例化它,然后在数据到来时更新它.
我正在创建它:
NSDictionary *options =
[NSDictionary dictionaryWithObject:
[NSNumber numberWithInteger:UIPageViewControllerSpineLocationMin]
forKey: UIPageViewControllerOptionSpineLocationKey];
self.pageController = [[UIPageViewController alloc]
initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl
navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal
options: options];
self.pageController.dataSource = self;
self.pageController.delegate = self;
[[self.pageController view] setFrame:[[self view] bounds]];
MovellaContentViewController *initialViewController = [self viewControllerAtIndex:0];
self.controllers = [NSArray arrayWithObject:initialViewController];
[self.pageController setViewControllers:self.controllers
direction:UIPageViewControllerNavigationDirectionForward
animated:NO
completion:nil];
[self addChildViewController:self.pageController];
[[self view] addSubview:[self.pageController view]];
[self.pageController didMoveToParentViewController:self];
Run Code Online (Sandbox Code Playgroud)
然后我就开始了 self.controllers = newControllersArray;
我正在寻找像UITableViewController的reloadData之类的东西,UIPageViewController有这样的东西吗?
在键盘上度过了漫长的一天,所以我伸出手:-)
我有一个UIPageViewController典型的实现,基本上遵循Apple的标准模板.我正在尝试添加一个叠加层,允许用户执行操作,例如触摸按钮跳转到某些页面或关闭视图控制器以转到应用程序的其他部分.
我的问题是UIPageViewController从我的叠加子视图中捕获所有事件,我正在努力寻找可行的解决方案.
这里有一些代码来帮助这个例子......
在viewDidLoad中
// Page creation, pageViewController creation etc....
self.pageViewController.delegate = self;
[self.pageViewController setViewControllers:pagesArray
direction:UIPageViewControllerNavigationDirectionForward
animated:NO
completion:NULL];
self.pageViewController.dataSource = self;
[self addChildViewController:self.pageViewController];
[self.view addSubview:self.pageViewController.view];
// self.overlay being the overlay view
if (!self.overlay)
{
self.overlay = [[MyOverlayClass alloc] init]; // Gets frame etc from class init
[self.view addSubview:self.overlay];
}
Run Code Online (Sandbox Code Playgroud)
一切都很好.叠加层被创建,它会显示在UIPageViewController您期望的页面顶部.当页面翻转时,它们会在叠加层下方翻转 - 再次正如您所期望的那样.
然而,UIButtons在中self.overlay视从未获得点击事件.该UIPageViewController响应的所有事件.
我已经尝试过-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch根据这些建议而没有成功.
我已经尝试手动捕获所有事件并自己处理它们 - 不起作用(说实话,即使它确实看起来有点像黑客).
有没有人有关于如何捕获事件的建议,或者可能是更好的方法来使用叠加在顶部UIPageViewController.
任何和所有的帮助非常感谢!!
objective-c uiview addsubview uitapgesturerecognizer uipageviewcontroller
我想UIPageViewController在我的iOS 5.0应用程序中使用水平.
我唯一的问题是我不想要UIPageViewControllerTransitionStylePageCurl过渡.有没有办法获得像翻译这样的经典转型?
注意:即使是丑陋的黑客也会被接受,因为它会占用我以前的很多代码
只是一个简单的问题,是否可以在翻转时删除UIPageviewcontroller的阴影?例如:阴影的例子
谢谢,
我有一个奇怪的问题,我有一个页面应用程序,其中我使用了一个页面UITextView,但当我点击UITextView它移动到下一页时,不能写任何东西.
我使用时没有问题UIPageViewControllerTransitionStylePageCurl.唯一的问题是UIPageViewControllerTransitionStyleScroll.谁知道解决方案?请帮我
有没有办法在没有编写代码的情况下为故事板中的UIPageViewController配置数据源,委托和查看控制器?我确实在UIPageViewController中看到了数据源和委托的出口,但没有办法在场景之间进行连接,也无法在同一场景中添加额外的控制器.
如果IBS中的UIPageViewController根本无法配置,那么在Interface Builder中使用UIPageViewController的目的是什么?
我的UIPageViewController节目UIViewController,享有UIWebView作为子视图.我的问题是,当我向前转动UIWebView负载时比向后转动时要慢.当向后转时,我立即看到我想要看的视图控制器的视图,但是当向前看时,我可以看到视图控制器的视图在子视图出现之前的短时间内是白色的.
这不是因为之前的页面已被加载一次,因为当向前,向后然后再转发到同一页面时也会出现问题.
在加载下一页和上一页时,我使用完全相同的方法和类.
为什么会发生这种情况并且有办法解决这个问题?
你怎么能看到我的imageView没有覆盖全屏.我怎么能这样做我的imageView将覆盖全屏和dotView上的点?
我用viewController + PageViewController做到了.
我调整它的大小:
self.pageViewController.view.frame = CGRectMake(0, 0, self.view.frame.width, self.view.frame.size.height)
Run Code Online (Sandbox Code Playgroud)
我的代码很长,所以如果你想查看我的代码的确切部分 - 只需询问它
如标题所述,有一种方法可以返回错误的索引。这会弄乱页面底部的索引显示点。完成此操作的方法是跳过页面而不用手指离开屏幕。如果发生这种情况,则会弄乱其余的演示点。
这是实际运行中的错误。
这是用于UIPageViewController的代码。
import UIKit
class PageViewController: UIPageViewController {
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return UIStatusBarStyle.LightContent
}
private(set) lazy var orderedViewControllers: [UIViewController] = {
return [self.newColoredViewController("Green"),
self.newColoredViewController("Red"),
self.newColoredViewController("Blue")]
}()
private func newColoredViewController(color: String) -> UIViewController {
return UIStoryboard(name: "Main", bundle: nil) .
instantiateViewControllerWithIdentifier("\(color)ViewController")
}
override func viewDidLoad() {
super.viewDidLoad()
dataSource = self
if let firstViewController = orderedViewControllers.first {
setViewControllers([firstViewController],
direction: .Forward,
animated: true,
completion: nil)
}
// Do any additional setup after loading the view.
}
override func …Run Code Online (Sandbox Code Playgroud) 我使用了这个惊人的教程如何在Swift中使用UIPageViewController来理解和实现我的应用程序中的UIPageViewController.
我已成功完成集成,但我现在需要修改一点行为.
我不想一次只查看一个彩色视图,而是查看前一个视图的25%和下一个视图的25%.
我想我必须使用这个方法传递3个viewcontrollers:
func setViewControllers(_ viewControllers: [UIViewController]?,
direction: UIPageViewControllerNavigationDirection,
animated: Bool,
completion: ((Bool) -> Void)? = nil)
Run Code Online (Sandbox Code Playgroud)
......但我不知道该怎么做
ios ×8
objective-c ×4
iphone ×3
swift ×3
addsubview ×1
animation ×1
ibooks ×1
ios5 ×1
ipad ×1
shadow ×1
storyboard ×1
uiview ×1