Enorme Photo Viewer - 将EGO Photo ViewController添加到子视图的正确方法是什么?

时间:2011-06-22 08:42:28

标签: uiview subview addsubview photoviewer

我刚刚尝试了Enormego Photoviewer(https://github.com/enormego/PhotoViewer)演示,因为我在这里读了几篇文章,推荐它作为three20的轻量级替代品。在尝试演示时,我能够使用presentPopoverFromBarButtonItem以及ModalViewController方法显示库,一切正常。但是,当我将EGOPhotoViewController添加为另一个视图的子视图时,即使显示图像,在我开始在暗图像区域中滑动之前,照片也不会出现。此外,照片(即使您可以瞥见下一张图片)也不会导航到下一张照片。

原始代码 - (使用UIPopover)

- (void)showPhotoView:(UIBarButtonItem*)sender{

    MyPhoto *webPhoto = [[MyPhoto alloc] initWithImageURL:[NSURL URLWithString:@"http://a3.twimg.com/profile_images/66601193/cactus.jpg"] name:@" laksd;lkas;dlkaslkd ;a"];
    MyPhoto *filePathPhoto = [[MyPhoto alloc] initWithImageURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"local_image_2" ofType:@"jpg"]]];
    MyPhoto *inMemoryPhoto = [[MyPhoto alloc] initWithImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"local_image_1" ofType:@"jpg"]]];

    MyPhotoSource *source = [[MyPhotoSource alloc] initWithPhotos:[NSArray arrayWithObjects:webPhoto, filePathPhoto, inMemoryPhoto, nil]];

    EGOPhotoViewController *photoController = [[EGOPhotoViewController alloc] initWithPhotoSource:source];
    photoController.contentSizeForViewInPopover = CGSizeMake(480.0f, 480.0f);

    [webPhoto release];
    [filePathPhoto release];
    [inMemoryPhoto release];    
    [source release];

    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:photoController];
    UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:navController];
    popover.delegate = self;
    [popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
    popoverController = popover;

    [photoController release];
    [navController release];


}

使用presentModalViewController方法

    MyPhoto *photo = [[MyPhoto alloc] initWithImageURL:[NSURL URLWithString:@"http://a3.twimg.com/profile_images/66601193/cactus.jpg"] name:@" laksd;lkas;dlkaslkd ;a"];
    MyPhoto *photo2 = [[MyPhoto alloc] initWithImageURL:[NSURL URLWithString:@"https://s3.amazonaws.com/twitter_production/profile_images/425948730/DF-Star-Logo.png"] name:@"lskdjf lksjdhfk jsdfh ksjdhf sjdhf ksjdhf ksdjfh ksdjh skdjfh skdfjh "];
    MyPhotoSource *source = [[MyPhotoSource alloc] initWithPhotos:[NSArray arrayWithObjects:photo, photo2, photo, photo2, photo, photo2, photo, photo2, nil]];

    EGOPhotoViewController *photoController = [[EGOPhotoViewController alloc] initWithPhotoSource:source];
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:photoController];

    navController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    navController.modalPresentationStyle = UIModalPresentationFullScreen;
    [self presentModalViewController:navController animated:YES];

我想要实现的目标

MyPhoto *webPhoto = [[MyPhoto alloc] initWithImageURL:[NSURL URLWithString:@"http://a3.twimg.com/profile_images/66601193/cactus.jpg"] name:@" laksd;lkas;dlkaslkd ;a"];
MyPhoto *filePathPhoto = [[MyPhoto alloc] initWithImageURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"local_image_2" ofType:@"jpg"]]];
MyPhoto *inMemoryPhoto = [[MyPhoto alloc] initWithImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"local_image_1" ofType:@"jpg"]]];

MyPhotoSource *source = [[MyPhotoSource alloc] initWithPhotos:[NSArray arrayWithObjects:webPhoto, filePathPhoto, inMemoryPhoto, nil]];

EGOPhotoViewController *photoController = [[EGOPhotoViewController alloc] initWithPhotoSource:source];

[webPhoto release];
[filePathPhoto release];
[inMemoryPhoto release];    
[source release];

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:photoController];

[self.view addSubview:navController.view];

有没有人有这个问题的经验/知道如何正确修复或做到这一点?

0 个答案:

没有答案