将图像从URL加载到uiimage,然后将这些图像添加到uitableviewcell uiimageview,如下面的代码.我不知道图像大小,但需要在tableviewcell图像中强制它们为40×40.图像在uitableview中以不同的宽度加载.
阅读与uiimage大小/缩放相关的其他帖子,但这些解决方案对我不起作用.我在想它是因为我正在使用uitableviewcell中包含的uiimageview来创建我自己的uiimageview.
这是代码>
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [[UITableViewCell alloc] init]; ItemForSale *item = [listOfItems objectAtIndex:indexPath.row]; cell.textLabel.text = item.name; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; cell.textLabel.font = [UIFont systemFontOfSize:14]; NSURL *url = [NSURL URLWithString: item.imgPath]; UIImage *thumbnail = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]]; if (thumbnail == nil) { thumbnail = [UIImage imageNamed:@"noimage.png"] ; } cell.imageView.image = thumbnail; cell.imageView.contentMode = UIViewContentModeScaleAspectFill; cell.imageView.frame = CGRectMake(0,40,40); cell.imageView.autoresizingMask = UIViewAutoresizingNone; cell.imageView.clipsToBounds = YES; return cell; }
我尝试过设置内容模式(尝试了aspectfill和aspect fit),尝试重置框架,设置autoresizingmask,clipTobound.没有一件事改变了.
解决方法
找到苹果示例项目“LazyTableImages”的答案
NSURL *url = [NSURL URLWithString: item.imgPath]; UIImage *thumbnail = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]]; if (thumbnail == nil) { thumbnail = [UIImage imageNamed:@"noimage.png"] ; } CGSize itemSize = CGSizeMake(40,40); UIGraphicsBeginImageContext(itemSize); CGRect imageRect = CGRectMake(0.0,0.0,itemSize.width,itemSize.height); [thumbnail drawInRect:imageRect]; cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return cell;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。