【发布时间】:2012-01-19 19:18:14
【问题描述】:
由于某种原因,我只能在每次使用不同图像分配/初始化它时显示 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]; 将图像发送到处理。我不知道这怎么可能。如果在无法显示图像时处理失败,这对我来说会更有意义。
想法?谢谢。
【问题讨论】:
标签: iphone objective-c xcode uiimageview uiimage