IOS 开发,我想让我从网上获得的NSData数据能够让我的uitbleview中的cell自适应高度
宽度最大也就同屏宽,如果可以的话,让图片按比例缩 放!以达到不失真的效果;谢谢!

解决方案 »

  1.   

    要做到cell高度适应图片,需要获取到图片的高度,然后在table:hightForCell的方法中返回图片的高度,也就是将cell的高度设置为图片的高度
      

  2.   

    个人非常不赞成这样的问题
    这是一个功能,首先你自己就必须考虑实现这个功能需要那些技术点,某个点有问题解决不了的话可以寻求帮助
    你这么一问,是想让别人帮你完成吗?这样如何成长?你做这个又有什么意义?话说回来,google上一搜一大把,源代码都有,自己琢磨琢磨,有不懂问一下,这才是正途。
      

  3.   

    //计算cell的高度,以及背景图的处理
    -(CGFloat)setTFHeightWithImage:(BOOL)hasImage
    {
        [contentTF layoutIfNeeded];
        
        //正文Text位置
        CGRect frame = contentTF.frame;
        frame.size = contentTF.contentSize;
        NSLog(@"frame.size.height = %f",contentTF.contentSize.height);
        contentTF.frame = frame;
        
        //正文的图片位置
        frame = contentImage.frame;
        frame.origin.y = contentTF.frame.size.height + contentTF.frame.origin.y+10.f;
        frame.size.height = IMAGE_VIEW_HEIGHT;
        contentImage.frame = frame;
        
        //设置名称位置
        frame = userNameLB.frame;
        frame.origin.y = contentImage.frame.size.height +contentImage.frame.origin.y +20.f;
        frame.size.height = userNameLB.frame.size.height;
        userNameLB.frame = frame;
        
        //设置时间位置
        frame = ctime.frame;
        frame.origin.y = userNameLB.frame.origin.y + 2.f;
        frame.origin.x = userNameLB.frame.origin.x + userNameLB.frame.size.width + 10;
        ctime.frame = frame;
        
        frame = sharedState.frame;
        frame.origin.y = userNameLB.frame.origin.y+5;
        frame.origin.x = ctime.frame.origin.x + ctime.frame.size.width +10;
        sharedState.frame = frame;//    //背景设置
    //    bgImage.image = [[UIImage imageNamed:@"table_header_bg.png"] stretchableImageWithLeftCapWidth:10 topCapHeight:10];    return contentTF.contentSize.height;
    }
      

  4.   

    然后    //计算cell的高度,以及背景图的处理
        [self setTFHeightWithImage:YES];
    调用这个方法
    效果:
      

  5.   

    1.很多应用的image高度,都固定的,当然点击查看大图,就各种各样大小,例如sina微博,楼主可以参考这个标准
    2.要么让server把image的长宽字段传过来,然后确定imageview大小,很方便
    3.最后就是转成image数据,然后得到image分辨率大小,在确定,确定就是先要得到image数据