Теперь я использую этот код с небольшой модификацией:
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",
но теперь пользовательский интерфейс выровнялся, но внешний вид моей фотобаттона всегда черный ...
Что мне делать дальше?
Спасибо за ваше терпение.
__ _ __ _ __ _ __ _ ___ Обновлено _ __ _ __ _ _
У меня есть 2 viewControllers, A и B.
A является корневым viewController, а B является дочерним viewController A.
В B есть кнопка вызова камеры, чтобы сделать фотографию.
После того, как пользователь пометил фотографию, ее фотография становится тем же.
Когда я нажимаю новый B (без фотографии) от A,
дела идут гладко.
Но когда есть старый Б с фотографией.
анимация немного застряла, так как я думаю, что следующий код:
- (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];
}
Но мне нужно получить эту фотографию до того, как отобразится вид, так как мне нужно установить эту фотографию в качестве фона моей фото кнопки.
Итак, есть ли способ избежать застревания анимации вида? Потому что это действительно приводит к плохому пользовательскому опыту.
Большое спасибо!