По какой-то причине я могу отображать UIImageView, только когда я выделяю / инициализирую его каждую итерацию с другим изображением.Странно то, что я знаю, что данные изображения загружаются, потому что я выполняю обработку изображения, и обработка работает, как ожидалось.Короче говоря, вот два метода, которые я пробовал:
// interface
@interface ViewController : UIViewController <UIAlertViewDelegate>
{
UIImageView *imageView;
}
@property (nonatomic, retain) UIImageView *imageView;
@end
// implementation
@implementation ViewController
@synthesize imageView;
//...
- (void) loadAndDisplayImage {
// Load testing image
UIImage *testImg;
testImg = [UIImage imageNamed:@"Test.png"];
self.imageView = [[UIImageView alloc] initWithImage:testImg];
//size of imageView rect
CGRect frame = self.imageView.frame;
int ivw = frame.size.width;
int ivh = frame.size.height;
//...
}
@end
Когда я использую этот метод self.imageView = [[UIImageView alloc] initWithImage:testImg];
, ivw
и ivh
имеют допустимые значения, и изображение отображается.Однако, если я изменю реализацию на это:
// implementation
@implementation ViewController
@synthesize imageView;
//...
- (void) viewDidLoad {
self.imageView = [[UIImageView alloc] init];
[self loadAndDisplayImage];
}
- (void) loadAndDisplayImage {
// Load testing image
UIImage *testImg;
testImg = [UIImage imageNamed:@"Test.png"];
self.imageView.image = testImg;
//size of imageView rect
CGRect frame = self.imageView.frame;
int ivw = frame.size.width;
int ivh = frame.size.height;
//...
}
@end
Когда я устанавливаю изображение, используя self.imageView.image = testImg;
, значения ivw
и ivh
оба равны нулю, и изображение не отображается, но последующееобработка на изображении все еще точна.В обоих случаях отправляю изображение на обработку, используя [self doRecognizeImage:self.imageView.image];
.Я не могу понять, как это возможно.Для меня было бы намного больше смысла, если обработка не удалась, когда изображение не могло быть показано.
Идеи?Благодарю.