出於某種原因,我只能在每次迭代使用不同圖像分配/初始化它時顯示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