1

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

是否有任何可NIToolbarPhotoViewController 用于非网络图像的示例?我的应用程序包中有我想通过本课程展示的图像。NIToolbarPhotoViewController我已经用我自己的子类(直接子类化,而不是 子类化)尝试了 NetworkPhotoAlbum 示例的一些调整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并实现以下这两种方法,作为一个非常基本的开始。但是,即使如图所示实现了这两个数据源方法,我也会收到一个空白屏幕。虽然,我仍然得到显示正确照片计数的视图(例如 10 张中的 4 张),并且可以使用前进/后退箭头单击,但最终没有显示实际图像。我期待 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")]; 

}
4

1 回答 1

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;}

这对我有用,对其他人也应该如此。

于 2012-12-26T17:09:26.513 回答