現在我正在使用此代碼,用少許修改:UI變得有點卡住,因爲取照片
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的外觀總是黑色的...
接下來應該做什麼?
_______________________Updated___________________
我有2個viewControllers,A和B. A爲根的viewController,B是A的孩子的viewController。 在B中,有一個用於調用相機拍照的按鈕。
用戶拍照後,照片的外觀就變成了這張照片。
當我從A推新B(沒有照片), 事情順利。 但是,當有一個古老的B帶的一張照片, 動畫變得有點卡住,引起下面的代碼我猜:
- (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];
}
但顯示的視圖之前,我確實需要得到那張照片因爲我需要將該照片設置爲我的photoButton背景。
那麼,有沒有辦法避免粘貼視圖的動畫?因爲它確實會導致糟糕的用戶體驗。
您應該添加您正在使用的語言和GUI工具包的標記,所以人們在這些學科知識淵博會發現這個問題。 – 2012-02-25 15:53:57
感謝您的提醒! – 2012-02-25 15:55:39