2012-12-20 77 views
1

最初發佈於https://groups.google.com/forum/#!msg/nimbusios/nGePpdl12N4/Etnyp1cUOhMJNIToolbarPhotoViewController與應用捆綁的照片

是否有任何的例子可以使用NIToolbarPhotoViewController 與非網絡圖像?我在我的應用程序包 中有圖像,我想通過此課程展示。我已經嘗試了幾個 對我自己的子類 (子類NIToolbarPhotoViewController直接,而不是 NetworkPhotoAlbumViewController)的調整NetworkPhotoAlbum示例。但是,即使在我的子類中使用兩種方法對 進行硬編碼以使用+ 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和實現這兩個 方法下面是一個非常基本的啓動。但是,即使這兩個數據源方法如圖所示執行,我也會收到一個空白屏幕。 儘管如此,我仍然可以看到顯示正確照片數的視圖(例如,4中的10個,例如 ),並且可以通過使用向前/向後箭頭進行點擊,I 最終沒有真正的圖像顯示。我期待 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")]; 

} 

回答

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

這對我來說是訣竅,它應該對其他人也是如此。

+0

我忘了輸入「return image;」在樣本中。 – Ryan

+0

你可以編輯你的答案,這樣做... – Ben

+0

你是男人,把我的頭髮拉出來,直到找到這篇文章。謝謝 –