2012-02-25 1 views
0

今、私は少しの変更で、このコードを使用しています:私は、私が欲しいその写真を入手した後、あなたが実際には、見ることができるように回避のUIのためのフォローアップQが遅れたばかり(IOS)

if (self._photoPath && !self._photo) { 
    dispatch_queue_t bg_thread = dispatch_queue_create("com.yourcompany.bg_thread", NULL); 
    dispatch_queue_t main_queue = dispatch_get_main_queue(); 
    dispatch_async(bg_thread,^{ 
     NSData *data = [NSData dataWithContentsOfFile:self._photoPath]; 
     if(data != nil) { 
      dispatch_async(main_queue,^{ 
       self._photo = [UIImage imageWithData:data]; 
       [self.photoButton setImage:[UIImage imageNamed:@"photoButton.png"] forState:UIControlStateNormal]; 
      }); 
     } 
    }); 

} 

、私の「photoButton」にすぐにそれを設定し

が、今、UIは平滑ましたが、私のphotoButtonの外観は常に黒です...

私は次に何をすればよいですか?

ご理解いただきありがとうございます。

__ _ __ _ __ _ __ _ ___更新_ __ _ __ _ _

私が持っている2 viewControllers 、AおよびB。

AはルートviewControllerで、BはAの子viewControllerです。

Bには、カメラを呼び出して写真を撮るためのボタンがあります。

ユーザーが写真を撮ると、その写真の外観がその写真になります。

私はAから(なし写真付き)新しいBを押して、

物事がスムーズになります。

しかし、写真が入った古いBがあるとき。

アニメーションは、私が推測する次のコードをするので、少しstucked取得します。

- (void)viewWillAppear:(BOOL) animated { 
if (self._photoPath && !self._photo) { 
     NSData *data = [NSData dataWithContentsOfFile:self._photoPath]; 
     if(data != nil) 
      self._photo = [UIImage imageWithData:data]; 
} 
[super viewWillApear]; 

}

しかし、私はその写真を設定する必要があるため、私はビューが表示される前にその写真を取得する必要があります私の写真ボタンの背景に。

だから、ビューのアニメーションを張るのを避ける方法はありますか?本当に悪いユーザーエクスペリエンスにつながります。

ありがとうございます!

+0

@moosgummiはこちら –

答えて

0

答えが見つかりました。

ボタンを更新するコード行を追加するだけです。

私にとって、それは

[self.photoButton setImage:[UIImage imageNamed:@"photoButton.png"] forState:UIControlStateNormal]; 
NSUInteger p[2] = {1,4}; 
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject: 
           [NSIndexPath indexPathWithIndexes:p length:2]] 
         withRowAnimation:UITableViewRowAnimationNone]; 
関連する問題