出于某种原因,我只能在每次迭代使用不同图像分配/初始化它时显示UIImageView。奇怪的是我知道正在加载图像数据,因为我正在对图像执行处理,并且处理按预期工作。总之,这里有两种方法我尝试:UIImageView仅在我调用initWithImage时显示
// 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];
将图像发送到处理。我无法弄清楚这是如何可能的。如果图像无法显示时处理失败,这对我来说会更有意义。
想法?谢谢。
感谢您的建议! – 2011-12-14 16:06:32