UIImageView 在 UITableViewCell 中不起作用
Posted
技术标签:
【中文标题】UIImageView 在 UITableViewCell 中不起作用【英文标题】:UIImageView not working in UITableViewCell 【发布时间】:2011-11-16 23:10:42 【问题描述】:我正在使用此代码将图像加载到我的 UITableView 中。
但是什么都没有加载,有什么想法吗?当我 NSLog 时,链接是正确的。
NSString *temp = [appointmentDictionaryTemp objectForKey:@"patient_small_photo_url"];
NSData * imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:temp]];
UIImage * image = [UIImage imageWithData:imageData];
UIImageView * myImageView = [[UIImageView alloc] initWithImage:image];
cell.patientImage = myImageView;
更新:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @"appointmentCell";
AppointmentTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
NSDictionary *appointmentDictionaryTemp = [self.appointmentArray objectAtIndex:indexPath.row];
cell.patientNameLabel.text = [appointmentDictionaryTemp objectForKey:@"patient"];
cell.appointmentTimeLabel.text = [appointmentDictionaryTemp objectForKey:@"scheduled_time"];
NSString *urlString = [[appointmentDictionaryTemp objectForKey:@"patient_small_photo_url"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSData * imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]];
UIImage * image = [UIImage imageWithData:imageData];
cell.patientImage.image = image;
return cell;
【问题讨论】:
您能否查看请求的响应,如果返回,您可能无法获取图像数据。 这个问题有很多代码,但我错过了关键部分:什么是'cell'类,它的'patientInage'是什么 猜测单元格为 Nil。编辑:没有看到它已经工作了 【参考方案1】:您是否尝试过:
cell.patientImage.image = image;
当然你不需要创建myImageView
。
【讨论】:
对不起,我给你答案,没有任何解释:你犯的错误是给单元格的图像视图分配另一个图像视图,而不是仅仅设置已经存在的视图的图像。 这行得通。但是现在滚动表格时它的波动很大。如果您能找到任何优化滚动的方法,我将在问题中发布完整的代码。谢谢。 嗯,那是因为您在表格视图中使用 dataWithContentsOfURL。您最好单独询问(或自己查找),因为这是一个更大的问题。 您需要异步下载图像。至少有 3-4 种方法可以做到这一点,从使用 AFNetworking 之类的库到使用 NSQueue... 在此处添加问题:***.com/questions/8160223/…【参考方案2】:尝试在您的 URL 字符串中添加百分比转义。
NSString *urlString = [[appointmentDictionaryTemp objectForKey:@"patient_small_photo_url"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
【讨论】:
不幸的是没有运气。链接是https
,而不是http
,如果有区别的话。
在发送-dataWithContentsOfURL
消息后设置断点并检查网络上的内容。也许这是在图像视图上设置图像的问题。你是如何设置你的手机的? patientImage
是否连接到 UIImageView?以上是关于UIImageView 在 UITableViewCell 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
使用UITableView自动在UITableView上滚动UIImageView
如何在 UITableView 的单元格中为 UIImageView 获取 touchesMoved?
在具有透明度的 UITableView 单元格中更新 UIImageView
如何在 UITableView 的两个部分之间插入 UIImageView?