好的,所以我将复杂的应用程序修剪成一个简单的陷入困境的版本,供所有人理解。首先,我从服务器下载一个zip文件,解压缩并将其放在缓存目录文件夹中。所有在AppDelegate中发生的事情并解压缩并存储图像就好了。在tableviews veiwdidload方法调用时,我调用一个函数来查找iPhones缓存目录文件夹中的图像文件。找到成功的图像文件后,我将获取该图像的文件路径
·H
@property (nonatomic, strong) IBOutlet UIImageView *theImage;
的.m
NSString * photo;
NSString * photoType = @"6F0C437D-1BB2-482B-BF11-39BCAB668E4C";
photo = [NSString stringWithFormat:@"BANNERLOGO%@.png", photoType];
NSArray *cachesPaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString * cacheDir = [cachesPaths objectAtIndex:0];
cacheDir = [cacheDir stringByAppendingPathComponent:@"1D2EA159-A312-4FB5-8FE5-B95879B242BB"];
NSString * photoPath = [cacheDir stringByAppendingPathComponent:photo];
BOOL success = [fileManager fileExistsAtPath:photoPath];
if (!success) {
NSLog(@"Error!!");
}
UIImage *image = [UIImage imageWithContentsOfFile:photoPath];
[self.theImage setImage:image];
所以这是我的问题。我似乎无法弄清楚为什么我抓住的图像没有显示出来?有没有人有任何想法为什么会这样?奇怪的是,当我设置tableview单元格的颜色时,它会像我预期的那样变成灰色。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:@"MainCell"];
if (cell == nil) {
cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MainCell"];
}
//DoesNot
cell.bannerImageView.image = self.theImage.image;
//Shows up in cell
cell.backgroundColor = [UIColor colorWithRed:0.9f green:0.9f blue:0.9f alpha:1.0f];
return (UITableViewCell *)cell;
}
这是我自定义单元格类的代码,如果有帮助的话。
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{ self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
CGRect contentRect = self.contentView.bounds;
contentRect.size.height = 56.0;
self.bannerImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 300, 56)];
self.bannerImageView.contentMode = UIViewContentModeScaleAspectFit;
[self.contentView addSubview:bannerImageView];
}
return self;
}
提前感谢您的指导!
答案 0 :(得分:1)
尝试设置imageView背景颜色(比如绿色)以查看是否存在布局问题或图像加载问题。
答案 1 :(得分:0)
如果self.theImage.image
返回null,请尝试查看UIImage *image = [UIImage imageWithContentsOfFile:photoPath];
是否返回了某些内容,如果它返回了某些内容,请尝试将[self.theImage setImage:image];
更改为self.theImage.image = [UIImage imageWithContentsOfFile:photoPath];
答案 2 :(得分:0)
好的,我弄清楚了我的问题。所以我很欣赏记录照片的所有建议,这对我很有帮助。所以首先我创建一个返回图像的UIImage方法。然后我调用了该方法,并直接设置了cell.bannerImageView:
[cell.bannerImageView setImage:[TableViewController banner]];
然后我必须将该图像添加到单元格视图中,如下所示:
[cell.contentView addSubview:cell.bannerImageView];
希望这对其他人都有帮助!