我有一个类,我有两个UIImageViews。如果控制我正在设置这些ImageView的图像,但它没有设置。
我从另一个班级调用该方法。
我的代码如下,
@synthesize coordinate, title, subtitle,number,index,vstd,sold;
NSString *identifier;
- (id)initWithAnnotation:(id <MKAnnotation>)annotation reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier];
if (self != nil)
{
UIImageView * ecz = [[UIImageView alloc]init];
ecz.frame = CGRectMake(0, 0, 87, 50);
ecz.image = [STCachedImage getCachedImage:@"eczane_indicator"];
[self addSubview:ecz];
[ecz release];
vstd = [[UIImageView alloc]initWithFrame:CGRectMake(8, 10, 25, 22)];
[self addSubview:vstd];
[vstd release];
sold = [[UIImageView alloc]initWithFrame:CGRectMake(50, 10, 25, 22)];
[self addSubview:sold];
[sold release];
}
return self;
}
-(void) visitOrderFlag : (NSString*)visitFlag withOrderFlag:(NSString*)orderFlag
{
if([visitFlag isEqualToString:@"0"])
{
UIImage *visitedImage = [STCachedImage getCachedImage:@"pharm1"];
[vstd setImage:visitedImage];
}
else
{
UIImage *visitedPressedImage = [STCachedImage getCachedImage:@"pharm2"];
[vstd setImage:visitedPressedImage];
}
if([orderFlag isEqualToString:@"0"])
{
UIImage *orderedImage = [STCachedImage getCachedImage:@"pharm3"];
[sold setImage:orderedImage];
}
else
{
UIImage *orderedPressedImage = [STCachedImage getCachedImage:@"pharm4"];
[sold setImage:orderedPressedImage];
}
}
@end
我缺少什么?
请给我一个解决方案
答案 0 :(得分:2)
使用此方法,并在视图控制器类中添加一个观察者,以观察图像对象的变化。当它通知时,您可以将您的图像对象放入UIimageView。
-(UIImage *)thumbImage{
__block UIImage *myImage;
if([[NSFileManager defaultManager] fileExistsAtPath:[Utility systemFilePath:imageURL_]]) {
NSData *imageData = [NSData dataWithContentsOfFile:[Utility systemFilePath:imageURL_]];
if (imageData != nil) {
dealImage = [UIImage imageWithData:imageData];
}
}
else{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//Load image in background
NSData* imgData = [NSData dataWithContentsOfURL:[NSURL URLWithString: dealImageURL_]];
dispatch_async(dispatch_get_main_queue(), ^{
myImage = [UIImage imageWithData:imgData];
if(myImage){
NSString *filePathToSave = [Utility systemFilePath:imageURL_];
if (filePathToSave) {
[self willChangeValueForKey:@"profileImage"];
[imgData writeToFile:filePathToSave atomically:YES];
[self didChangeValueForKey:@"profileImage"];
}
}
});
});
}
return myImage;
}
答案 1 :(得分:1)
*ecz.image = [STCachedImage getCachedImage:@"eczane_indicator"];
此方法getchachedImage花费时间,之后您将释放图像视图。