簡體   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