1

元はhttps://groups.google.com/forum/#!msg/nimbusios/nGePpdl12N4/Etnyp1cUOhMJに投稿されました

NIToolbarPhotoViewController ネットワーク以外のイメージで使用できる例はありますか? このクラスを通じて提示したいアプリケーション バンドルに画像があります。NetworkPhotoAlbum の例を独自のサブクラス (NIToolbarPhotoViewController直接サブクラス化するのではなく、直接 サブクラス化NetworkPhotoAlbumViewController) でいくつか微調整してみました。ただし、サブクラスで次の 2 つのメソッドをハードコードして、+ 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私の現在の理解に基づくと、非常に基本的な開始点として、どのクラスでも以下の 2 つのメソッドをサブクラス化して実装できるはずです。ただし、これら 2 つのデータソース メソッドを図のように実装しても、空白の画面が表示されます。ただし、正しい写真数 (たとえば、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")]; 

}
4

1 に答える 1

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

これは私にとってはうまくいきましたが、他の人にとっても同様です。

于 2012-12-26T17:09:26.513 に答える