原发于https://groups.google.com/forum/#!味精/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
并实现这两个下面的方法作为一个非常基本的开始。然而,即使有这两个如所示实现的数据源方法,我将收到一个空白屏幕。尽管如此,我仍然得到了显示正确照片计数的视图(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;}
这个方法对我很有效,对其他人也一样。