有谁知道我为了将我自己的视图控制器手动添加到UIPageViewController方法而缺少什么?
我目前有这个,我不知道如何继续:
NSDictionary *pageViewOptions = [NSDictionary dictionaryWithObjectsAndKeys:UIPageViewControllerOptionSpineLocationKey, [NSNumber numberWithInteger:UIPageViewControllerSpineLocationMin], nil];
self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:pageViewOptions];
BookViewController *pageOne = [self.storyboard instantiateViewControllerWithIdentifier:@"BookViewController"];
AnotherPage *pageTwo = [self.storyboard instantiateViewControllerWithIdentifier:@"AnotherPage"];
PageThree *pageThree = [self.storyboard instantiateViewControllerWithIdentifier:@"PageThree"];
self.pageViewController.delegate = self;
self.pageViewController.dataSource = self;
[self.pageViewController setViewControllers:[NSArray arrayWithObjects:pageOne, pageTwo, pageThree, nil] direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];
[self addChildViewController:self.pageViewController];
[self.view addSubview:self.pageViewController.view];
self.view.gestureRecognizers = self.pageViewController.gestureRecognizers;
[self.pageViewController didMoveToParentViewController:self];
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.我只看到RootViewController.
感谢所有喜欢提前帮助像我这样渴望新手的人.... :)
具有PageCurl转换的UIPageViewController非常适合模拟页面,但默认的GestureRecognizer(UIPanGestureRecognizer)仅响应一个手指事件.我想在其他事件之上添加两个手指事件.
如何将另一个PanGestureRecognizer添加到当前的UIPageViewController实例?这个新的PanGestureRecognizer应该等待两个手指平移触摸,而不会禁用原始的UIPanGestureRecognizer.
如果用户用两个手指而不是一个手指滚动页面,我需要的是一种提升额外自定义事件的方法,但它仍然应该像调用一个手指事件一样滚动页面.
我怎么能在MonoTouch中做到这一点?
提前致谢.
gestures xamarin.ios ios uipangesturerecognizer uipageviewcontroller
我有一个包含多个页面的UIPageViewController.每个页面都是相同的视图控制器,但页面编号保持跟踪,并显示PDF的正确页面.问题是每个PDF页面都需要在卷曲效果工作之前加载和绘制(你在屏幕上滑动手指,直到加载才会发生任何事情).有关如何加快或预加载下一页的任何想法?谢谢你的帮助.
我正在尝试使用从故事板构建的场景来构建应用程序的演练.
所以我填充了我的viewControllers数组,称为pages:
@interface PVCPagesViewController () {
NSMutableArray *pages;
}
@property (retain, nonatomic) NSMutableArray *pages;
@property (strong, nonatomic) UIPageViewController *pageController;
@end
Run Code Online (Sandbox Code Playgroud)
在viewDidLoad()中:
self.pages = [[NSMutableArray alloc] init];
UIViewController *page1 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"page1"];
UIViewController *page2 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"page2"];
UIViewController *page3 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"page3"];
UIViewController *page4 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"page4"];
self.pages = [[NSMutableArray alloc] initWithObjects:page1, page2, page3, page4, nil];
Run Code Online (Sandbox Code Playgroud)
但是当我要在viewControllerAfterViewController()中从数组加载另一个视图控制器时:
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
NSInteger index = [self.pages indexOfObject:viewController];
index++;
return [self.pages objectAtIndex:index]; …Run Code Online (Sandbox Code Playgroud) 我可以得到UIPageControl当工作PageViewController导航样式设置为Horizontal,但是当我选择Vertical了UIPageControl不会出现水平或垂直.
我在AppDelegate中设置了UIPageControl的外观:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
UIPageControl *pageControl = [UIPageControl appearance];
pageControl.pageIndicatorTintColor = [UIColor lightGrayColor];
pageControl.currentPageIndicatorTintColor = [UIColor blackColor];
pageControl.backgroundColor = [UIColor whiteColor];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法让它出现在垂直位置?Horizontal选择导航但不选择选项时,上述代码有效Vertical.
我正在推出我的应用程序的第2版,需要对新功能进行简短的演练.我经历了一个教程并在另一个应用程序中创建了我的演练,其中一个UIViewController是根视图,一个UIPageViewController包含一个UIView,我在其中显示我的屏幕.它按我想要的方式工作.
现在我想在我的应用程序中集成它.我可以轻松地从示例应用程序导入我的编码.
我相信应用程序委托我将看到用户是否曾经历过演练,如果没有,请切换到启动演练的UIViewController,并写入用户已经看过演练的默认值(因此他们不会需要再次看到它.我在演练中有一个按钮进入主屏幕.
我对"applicationdidFinishLaunchingWithOptions"方法的部分代码如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIPageControl *pageControl = [UIPageControl appearance];
pageControl.pageIndicatorTintColor = [UIColor lightGrayColor];
pageControl.currentPageIndicatorTintColor = [UIColor blackColor];
pageControl.backgroundColor = [UIColor whiteColor];
UIStoryboard *storyBoard;
storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard.storyboard" bundle:nil];
UIViewController *walkthrough = [storyBoard instantiateViewControllerWithIdentifier:@"NextViewController"];
//[self presentViewController:walkthrough animated:YES completion:nil];
[self.window setRootViewController:walkthrough];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
这是完成的代码.非常感谢您的帮助:
// User Defaults
UserDefaults *thisUserDefaults = [[UserDefaults alloc] init];
[thisUserDefaults registerDefaults];
if (![[[NSUserDefaults standardUserDefaults]
valueForKey:kAppHasRunBeforeKey] boolValue]) {
UIPageControl *pageControl = [UIPageControl appearance];
pageControl.pageIndicatorTintColor = [UIColor lightGrayColor];
pageControl.currentPageIndicatorTintColor = [UIColor blackColor];
pageControl.backgroundColor …Run Code Online (Sandbox Code Playgroud) 我很难找到构建这种设计的最佳方法.
顶视图具有最小高度,并在达到此高度时变粘.底部视图托管一个具有三个视图的分页控制器.这些视图中的每一个都承载具有垂直滚动的集合视图或表视图.
我真的不知道如何处理这个问题.整个视图是否可滚动,我应该阻止在第二个视图上滚动,直到顶视图达到它的粘性高度?或者这些视图中的每一个都是单独的uitableviews,而寻呼控制器只是一个单元格?我是否应该使用分页控制器,还是应该使用启用分页的scrollview?(后者有点粗糙的互动方式)
谢谢!

我想在资产文件夹中显示几个图像到我的应用程序中.所以我想做一个页面视图.
首先,图像将在集合视图内,然后单击,图像将全屏显示.然后,用户可以通过向右和向左滑动来在图像之间滑动,如下图所示:

我找到了这个教程:
更新:
我在故事板中有这个:

现在,GaleryViewController我在细胞中显示图像
当用户点击它时,我将全屏打开图像PhotoViewController.
PhotoViewController.swift:
import UIKit
class PhotoViewController: UIViewController{
@IBOutlet weak var imageView: UIImageView!
var index: Int = 0;
var pageViewController : UIPageViewController?
@IBAction func btnCancelClicked(sender: AnyObject) {
self.navigationController?.popToRootViewControllerAnimated(true);
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
initUI();
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func viewWillAppear(animated: Bool) {
self.navigationController?.hidesBarsOnTap …Run Code Online (Sandbox Code Playgroud) 我刚创建了一个UIPageViewController包含单个ImageView和a的页面内容视图控制器Button.它几乎完美无缺,但是当我尝试仅在垂直视图中滑动视图时,它有一个主要问题,为我设置了Aspect Fill模式ImageView(这基本上是为此设置的).
您可以在此处看到此行为:https://youtu.be/2yl6UXbUGQg
我正在使用autolayout,Button约束与ImageView(全尺寸)对齐,ImageView约束设置为Superview ...
码:
1)UIPageViewController:
class ViewController: UIPageViewController, UIPageViewControllerDataSource {
var arrPageTitle: NSArray = NSArray()
var arrPagePhoto: NSArray = NSArray()
override func viewDidLoad() {
super.viewDidLoad()
arrPageTitle = ["page 1", "page 2", "page 3"]
arrPagePhoto = ["slider-1.jpg", "slider-2.jpg", "slider-3.jpeg"]
self.dataSource = self
self.setViewControllers([getViewControllerAtIndex(0)] as [UIViewController],
direction: .Forward,
animated: false,
completion: nil)
}
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
let pageContent: PageContentViewController = viewController …Run Code Online (Sandbox Code Playgroud) 我有一个PageViewController,它加载了两个“子” ViewController,以使用户可以“滑动”它们。我不希望有这种滑动手势,但是我想在ViewController中使用一个函数,该函数允许我在PageViewController中使用setViewControllers。
我尝试使用协议,但即使这样也没有解决。
我真的很感激我能做到的任何帮助或建议。谢谢!
ios ×7
swift ×3
objective-c ×2
uiimageview ×2
uistoryboard ×2
appdelegate ×1
autolayout ×1
delegates ×1
gestures ×1
ios5 ×1
ios7 ×1
ipad ×1
iphone ×1
nsarray ×1
uiimage ×1
uitableview ×1
xamarin.ios ×1
xcode ×1