我在Parse.com上有一个表,允许我存储事件信息。图像,标题,日期和说明。我试图获取图像并将其分配给我开发的自定义单元格中的UIImageView ...数据加载正常,自定义单元格工作,但图像不会更新...我的逻辑代码似乎合法,但话又说回来,我是新的...所以任何帮助都会受到赞赏。
有问题的代码就在我收到评论“// ---事件图片”
之后我只想弄清楚为什么我的图片没有更新。
谢谢!
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object
{
static NSString *simpleTableIdentifier = @"eventCell";
VFTEventCell *cell = (VFTEventCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"EventTableCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
//--- Event Title
cell.title.text = [object objectForKey:@"title"];
//--- Event Date
NSDate *eventDate = [object objectForKey:@"date"];
if(eventDate != NULL)
{
NSDate *date = [object objectForKey:@"date"];
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd/yyyy"];
NSString *dateString = [dateFormatter stringFromDate:date];
cell.date.text = dateString;
}
//--- Event Image
PFFile *eventImage = [object objectForKey:@"image"];
if(eventImage != NULL)
{
[eventImage getDataInBackgroundWithBlock:^(NSData *imageData, NSError *error) {
UIImage *thumbnailImage = [UIImage imageWithData:imageData];
UIImageView *thumbnailImageView = [[UIImageView alloc] initWithImage:thumbnailImage];
cell.image = thumbnailImageView;
}];
}
return cell;
}
答案 0 :(得分:1)
我在帖子发布后不久发现了我的问题...对于任何卡住的人。我只是删除了UIIMageView的创建。考虑到我的XIB文件,我已经创建了imageView ......但是,我使用setImage设置了该对象。
这是代码。
//--- Event Image
PFFile *eventImage = [object objectForKey:@"image"];
if(eventImage != NULL)
{
[eventImage getDataInBackgroundWithBlock:^(NSData *imageData, NSError *error)
{
UIImage *thumbnailImage = [UIImage imageWithData:imageData];
[cell.image setImage:thumbnailImage];
}];
}
答案 1 :(得分:1)
您正尝试在后台线程中设置此项。您只能从主线程访问UIKit。
[eventImage getDataInBackgroundWithBlock:^(NSData *imageData, NSError *error) {
UIImage *thumbnailImage = [UIImage imageWithData:imageData];
dispatch_async(dispatch_get_main_queue(), ^{
cell.imageView.image = thumbnailImage;
});
}];
注意:考虑使用PFImageView
。