回答
退房heightForRowAtIndexPath:
。这是关于它的另一个post。
为u必须创建自定义的UITableViewCell和U可以使用此代码
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
int rowHeight =0.0f;
// here u can get particular Url by indexPath.row, now create UIImage object using that Url
CGRect bioHeadingFrame = image.frame;
rowHeight = size.height; //get the height of that image
return rowHeight;
}
现在你的表格单元格的高度根据图像高度
你说的是对的。但要下载并显示表格视图单元格中的图像,我正在使用Asynchronous View类。我将图像URL传递给此类(异步视图类)以进行下载。我只有在下载图像后才能得到实际的图像大小。那么,我怎么能告诉tableview重新加载和制作图像大小的各个单元格。 – rahul 2012-04-11 06:36:18
只是搜索SO:http://stackoverflow.com/a/4448393/207616 – 2013-03-01 19:03:27
relikd是正确的。 reloadRowsAtIndexPaths是关键。 – 2013-03-01 19:13:44
如果是增加设置表视图单元格的大小异步下载是你真正的问题,请参考AFNetworking库的UIImageView类别。尤其是此功能:
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholderImage
您可以将此UIimageview类别包含到您的项目中,并设置从该类派生的细胞图像。
在下载完就可以使用
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil]
withRowAnimation:UITableViewRowAnimationAutomatic];
这将再次调用
-(CGFloat)tableView:(UITableView *)tableView
heightForRowAtIndexPath:(NSIndexPath *)indexPath
何时更新图像委托方法所以,你应该使用图像的高度,如果它存在,默认高度,或占位符图像(如果有)。
首先,我强烈建议使用SDWebImage进行异步下载,如果您还没有这样做。根据您的需要,您可以将图像缓存在内存或磁盘上 - 后者通过将它们保存在特殊的缓存文件夹中以正确的方式完成,因此iOS可以在空间不足时将其删除。它还在UIImageView上提供了一个便利的类别,类似于AFNetworking为您提供的类别,但具有更多选项和可选的完成块。这样,你可以做这样的事情:
#import <SDWebImage/UIImageView+WebCache.h>
...
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// Create the cell...
[cell.myImageView setImageWithURL:[NSURL URLWithString:@"http://example.com/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder"]
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
if (image != nil) {
[self.images insertObject:image atIndex:indexPath.row];
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:YES];
}
}];
return cell;
}
你下载的图像异步这样,正确设置的UIImageView,但你也可以使用该块将图像保存在一个NSMutableArray,这样你就可以告诉tableview中的正确的身高。它还会告诉表视图更新其图像已加载的单元格的高度。然后,当表视图需要知道一个给定的小区有多高,如果图像已经被加载,我们会从中得到大小:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
id image = [self.images objectAtIndex:indexPath.row];
if ([image isKindOfClass:[NSNull class]]) {
return defaultHeight;
} else {
return [image size].height + topPadding + bottomPadding;
}
}
我们知道是关闭的高度,即使图像这样屏幕(例如,当你已经滚动到底部)。此解决方案假定您首先使用NSNull值填充NSMutableArray,然后在加载时用图像替换它们。最后,如果你愿意,甚至可以在显示单元之前使用SDWebImageManager手动开始下载。
你为什么得到这个+50? – Rajneesh071 2013-03-08 07:58:16
我同意SDWebImage是一个伟大的图书馆,但它不应该是这个问题的正确答案,它应该已经得票,但不是赏金点。 – 2013-03-18 14:57:59
你可以让你的UIImageView
大小,因为下载图像,但它会给坏的样子。
所以我建议你做同样大小的所有图像,所以它会显得精致而甜美
你可以用它来使相同大小的所有图像。
+ (UIImage *)imageScaledToSizeWithImage:(UIImage *)imagewww andsizeee:(CGSize)size
{
//avoid redundant drawing
if (CGSizeEqualToSize(imagewww.size, size))
{
return imagewww;
}
//create drawing context
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0f);
//draw
[imagewww drawInRect:CGRectMake(0.0f, 0.0f, size.width, size.height)];
//capture resultant image
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//return image
return image;
}
但如果你真的想显示不同的行大小表然后进行更改运行时间
你的行大小时,您将获得的图像,然后保存图像与键值字典行indexPath 。
[tableImageDict setObject:image forKey:[NSString stringWithFormat:@"%i,%i",indexPath.row,indexPath.section]];
然后重新加载您的表格行。
[table reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationNone];
它会改变你的行高
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
UIImage *image = (UIImage *)[tableImageDict objectForKey:
[NSString stringWithFormat:@"%i,%i",
indexPath.row,indexPath.section]];
if (image != nil)
{
return image.size.height;
}
else{
return 44.0;
}
}
- 1. 根据内容高度调整图像高度
- 2. 动态调整的tableview单元格的高度根据内容 -
- 3. 如何根据元素高度动态调整iframe高度?
- 4. UIImageView + AFNetworking成功阻止调整图像大小并返回图像高度来调整单元格高度
- 5. IOS - 根据内容调整单元格高度
- 6. iOS - 自动调整单元格高度和标签高度
- 7. Excel宏调整单元格高度
- 8. 根据高度调整ImageView宽度
- 9. Xcode表格视图单元格不会调整高度
- 10. 如何根据高度调整图像的大小,并根据高度进行调整
- 11. 根据单元格内的tableview高度的高度来计算tableview单元格的高度?
- 12. 调整表格高度
- 13. 表格单元格高度
- 14. 根据标签文本+图像计算单元格高度
- 15. d3 treemap动态数据不调整单元格宽度/高度
- 16. UICollectionview基于图像高度设置单元格高度
- 17. 动态表格高度根据表中的单元格数量
- 18. 根据返回的表格调整自举表的高度
- 19. 如何根据UITableViewCells的高度调整UITableView的高度?
- 20. 根据包裹标题高度调整UINavigationBar的高度?
- 21. 调整单元格的高度和Witdth并在QTableWidget中加载图像
- 22. Bootstrap-根据宽度调整元素的高度
- 23. 调整Silverlight数据网格行的单元格高度?
- 24. 根据容器调整“div”的高度
- 25. 如何根据另一个元素的高度调整色谱柱的高度?
- 26. 设置图像的高度和宽度根据图像数量单格div
- 27. CSS旋转表格单元格和高度调整内容
- 28. 根据内容调整iframe高度
- 29. 根据滚动调整div高度
- 30. 根据内容调整iFrame高度
几个问题的亚人。这些图像会占用完整的320px宽度的屏幕吗?或者不管宽度如何,它们都会显示在另一个下面?或者,如果前一幅图像的宽度小于320,并且下一幅图像也可以适合其余宽度(320-prev_img_width),则会出现在前一幅图像旁边或前一幅图像下方。 – 2013-03-01 19:05:57