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