2

我想设置UIImageView的图像作为下面的UIImagePickerController返回。我的UIImageView profileImageView在viewdidload中实例化。奇怪的是,UIImagePickerController返回的图像并未显示在profileImageView中。起初我认为这是图像问题,所以我将它固定在SR-rewards.jpg上。添加NSLog,它显示[profileImageView setImage:[UIImage imageNamed:@“SR-rewards.jpg”]]已被执行,但profileImageView.image.size.height为0. 然后我再给它一次拍摄使用 [profileImageView performSelectorOnMainThread:@selector(setImage:) withObject: [UIImage imageNamed:@"SR-rewards.jpg"] waitUntilDone:YES]; 运行它在主线程中。虽然图像仍然不显示,但profileImageView.image.size.height更改为277.imagePickerController设置UIImageView.image不会更改显示的图像

任何想法的原因?我怎样才能设置图像?

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

    UIImage *chosenImage = info[UIImagePickerControllerEditedImage]; 
    [profileImageView setImage:[UIImage imageNamed:@"SR-rewards.jpg"]];//[self cropImage:smallImage]; 
    NSLog(@"%f" , profileImageView.image.size.height); 
    [picker dismissViewControllerAnimated:YES completion:NULL]; 

} 

问候 锤

+0

好像是您的个人资料图片视图缺陷。使用断点检查它。 – pankaj 2014-10-20 16:47:40

回答

7

更新UI主队列。

dispatch_async(dispatch_get_main_queue(), ^{ 
    [profileImageView setImage:[UIImage imageNamed:@"SR-rewards.jpg"]]; 
}); 
+0

这是正确的建议。谢谢 – Hammer 2014-10-20 16:50:24

+0

很好的回答! – user023 2015-02-01 21:37:46