NIToolbarPhotoViewController与应用程序包中的照片

时间:2012-12-20 17:31:20

标签: ios nimbus-ios photoviewer

最初发布于https://groups.google.com/forum/#!msg/nimbusios/nGePpdl12N4/Etnyp1cUOhMJ

是否有使用NIToolbarPhotoViewController的可用示例 与非网络图像?我的应用程序包中有图像 我想通过这堂课介绍一下。我试了几个 使用我自己的子类调整NetworkPhotoAlbum示例 (直接对NIToolbarPhotoViewController进行子类化,而不是 NetworkPhotoAlbumViewController)。但是,即使我硬编码了 在我的子类中使用两个方法来使用+返回一个图像 imageNamed,我得到了空白屏幕。

- (UIImage *)photoAlbumScrollView: (NIPhotoAlbumScrollView *)photoAlbumScrollView 
                     photoAtIndex: (NSInteger)photoIndex 
                        photoSize: (NIPhotoScrollViewPhotoSize *)photoSize 
                        isLoading: (BOOL *)isLoading 
          originalPhotoDimensions: (CGSize *)originalPhotoDimensions 

- (UIImage *)photoScrubberView: (NIPhotoScrubberView *)photoScrubberView 
              thumbnailAtIndex: (NSInteger)thumbnailIndex 

根据我目前的理解,似乎任何课程都应该如此 能够继承NIToolbarPhotoViewController并实现这两个 以下方法作为一个非常基本的开始。但是,即使有这两个 如图所示实现的数据源方法,我收到一个空白屏幕。 虽然,我仍然可以看到显示正确照片数的视图(4个中的4个, 例如)并且可以使用前进/后退箭头点击,I 最终没有显示实际图像。我期待着 default.png显示10次。

- (NSInteger)numberOfPhotosInPhotoScrollView:(NIPhotoAlbumScrollView *)photoScrollView { 
  return 10; 
} 

- (UIImage *)photoAlbumScrollView: (NIPhotoAlbumScrollView *)photoAlbumScrollView 
                     photoAtIndex: (NSInteger)photoIndex 
                        photoSize: (NIPhotoScrollViewPhotoSize *)photoSize 
                        isLoading: (BOOL *)isLoading 
          originalPhotoDimensions: (CGSize *)originalPhotoDimensions { 

  return [UIImage imageWithContentsOfFile: 
     NIPathForBundleResource(nil, @"NimbusPhotos.bundle/gfx/default.png")]; 

}

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。您需要为photoSize指定一个值(并且还应设置originalPhotoDimensions,但这不是必需的)。我原以为默认行为是直接从图像中读取属性,但默认为(0,0)。

- (UIImage *)photoAlbumScrollView: (NIPhotoAlbumScrollView *)photoAlbumScrollView 
                 photoAtIndex: (NSInteger)photoIndex 
                    photoSize: (NIPhotoScrollViewPhotoSize *)photoSize 
                    isLoading: (BOOL *)isLoading 
      originalPhotoDimensions: (CGSize *)originalPhotoDimensions { 

 UIImage *image = [UIImage imageWithContentsOfFile: 
 NIPathForBundleResource(nil, @"NimbusPhotos.bundle/gfx/default.png")];

 *originalPhotoDimensions = [image size];
 *photoSize = NIPhotoScrollViewPhotoSizeOriginal;
 return image;}

这对我来说是理所当然的,对任何其他人来说都是如此。