繁体   English   中英

NIToolbarPhotoViewController与应用程序包中的照片

[英]NIToolbarPhotoViewController with photos in app bundle

最初发布于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子类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")]; 

}

我遇到了同样的问题。 您需要为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;}

这对我来说很有把握,对其他人来说也应如此。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM