![](/img/trans.png)
[英]Nimbus NIToolbarPhotoViewController Image Crisping Effect
[英]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.