2012-04-04 13 views
0

UIImageViewでスピンアクティビティビューを表示し、イメージのロードが完了して表示されたら、アクティビティビューを停止して非表示にします。画像は資産ライブラリーから撮影した大きな写真です。UIImageViewイメージの読み込みが完了したら、UIActivityIndi​​catorViewのアニメーションを停止します。

- (void)viewDidLoad 
{ 
    //set photo 
    UIImageView *Photo = _photo; 
    NSURL *url = [[NSURL alloc] initWithString:project.photo]; 
    ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init]; 

    [library assetForURL:url resultBlock:^(ALAsset *asset) { 

     ALAssetRepresentation *rep = [asset defaultRepresentation]; 
     CGImageRef iref = [rep fullResolutionImage]; 
     if (iref) { 
      self.photo.image = [UIImage imageWithCGImage:[rep fullScreenImage] scale:[rep scale] orientation:0]; 

     } 
      } failureBlock:^(NSError *error) { 

       NSLog(@"Couldn't load asset %@ => %@", error, [error localizedDescription]); 



      }]; 

    [_ImageLoader stopAnimating]; 
} 

ただし、アクティビティビューが常に回転しているため、これは機能しません。

+0

ここで[_ImageLoader startAnimating]を呼び出していますか? – Zalykr

+0

- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [_ImageLoader startAnimating]; } – jcrowson

+0

名前が違う...問題じゃない? – Zalykr

答えて

1

- (void)viewWillAppear:(BOOL)animated; 

がそこで、基本的あなたが停止するように指示した後、アニメーション化するスピナーを伝える

- (void)viewDidLoad 

後に呼び出されるため。スピナーは常にアニメーション化され

幸運を祈る!

+0

ありがとうヘリエムは、今見て明らかだ! – jcrowson

1

ヘリウムは正しいです。結果ブロック内の[_ImageLoader stopAnimating]にcalを移動したい場合、または開始する前にアニメーションを停止させることになります。

関連する問題