原始需求是这样的,从服务器端获得一段文本,例如:我是描述文字
http://www.aaa.jpg
我是第二段描述文字
http://www.bbb.jpg
我是第三段描述文字现在需要在一个自定义的UITableViewCell里面显示上面这段内容,当然,是图片网址的部分需要显示成图片,图片采用异步加载的方式,在图片加载完成之前使用一个高的20px的loading图标来占位,在图片加载完成后取代这个加载图标,并根据图片的大小调整这个自动以UITableVlewCell的高度。
请问各位大侠,这该如何实现呢,最好能有一个示例,感激不尽。

解决方案 »

  1.   

    tableview设置cell为可变高度就行了呗
    每次下载完一张图片后重新计算cell的高度,再reloadData
      

  2.   

    嗯,拉回到图片之后,reloadData在heightForRow....这个接口里面填上正确的高度即可
      

  3.   

    tableView:heightForRowAtIndexPath返回的值根据图片动态变化
    ios X期待您的加入:43146334
      

  4.   

    重新刷新TableView会不会影响体验呀
      

  5.   

    假设在刷新表前已经请求得到图片,可以用图片.bounds 获得图片的大小,然后给行高赋值
      

  6.   

    如果数据量不是特别大,可以考虑将所有图片存放到一个数组中。初始状态下,数组中所有对象均使用NSNull对象作为占位符,如果图片加载完成,则用UIImage对象替换之,并reloadData。在heightForRowAtIndexPath中,查看对应数组位置是否为[NSNull null],如果不是,则返回你想要显示的图片高度,否则返回loading cell对应的高度。这种简单的方式可以实现你要的效果,不过UI交互可能不太理想,列表视图会有跳跃感。比较好的解决方案是在[UITableView beginUpdates],[UITableView endUpdates]中间调用reloadData,这样被调整的cell会通过动画效果拉伸至你指定的高度。
      

  7.   

    你参考一下这个,里面写的很详细,不会再问我
    http://blog.csdn.net/u012462238/article/details/38736787- (CGSize )getTextSizeWithString:(NSString *)string font:(UIFont *)font size:(CGSize )CustonSize
    {
        NSDictionary *attribute = @{NSFontAttributeName: font};
        CGSize textSize = [stringboundingRectWithSize:CustonSizeoptions:NSStringDrawingTruncatesLastVisibleLine |NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeadingattributes:attributecontext:nil].size;
       return textSize;
    }
    在cell里面根据加载出来图片的高度+其他的高度,这个方法可以设置每一个的高度,期望可以帮到你 ,没看到代码,我也不知道怎么设置,不会再问我。
      

  8.   

    SDWebImage里面应该有回调可以做吧?在回调中处理下高度?
      

  9.   

    你这个问题涉及到图文混排。这种需求非CoreText不可。