美文网首页攻城狮@IT·互联网程序员
iOS根据图片高度设置imageView高度

iOS根据图片高度设置imageView高度

作者: 上冬十二 | 来源:发表于2017-01-04 15:56 被阅读152次
    滚动.gif

    很多时候我们需要根据网络获取图片,通常做法是在url中拼接图片宽高,然后截取。我这里使用的是在SDWebImage的下载回调中获得图片的原始宽高,计算宽高比,然后根据固定imageview的宽度,得出不同的高度。

    • 其中cell自适应高度使用了FDTemplateLayoutCell,github将近7000star。
    • 废话不多说,上代码
    __block CGFloat imageX = 12.0f;
    // imageview的宽---宽度固定
    __block CGFloat imageW = kScreenWidth - imageX * 2; 
    // imageview的高
    __block CGFloat imageH = 0; 
    // 间距
    __block CGFloat margin = 15.0f;
    // 循环创建imageView
    for (NSInteger i = 0; i<count; i++) {
        __block CGFloat imageY = 0;
        __block UIImageView *bigImageView = [[UIImageView alloc]init];
     
        [bigImageView sd_setImageWithURL:self.lookEvaModel.image[i] placeholderImage:[UIImage imageNamed:@"evaDetails_placholder"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
            // 原始图片的宽
            CGFloat imageYW = CGImageGetWidth(image.CGImage);
            // iamgeView的H = imageView的宽 / (原始图片的宽 / 原始图片的高)---根据宽高比得出imageView的宽
            imageH = imageW / (imageYW / CGImageGetHeight(image.CGImage));
            imageY = margin*(i+1)  + imageH * i;
            bigImageView.frame = CGRectMake(imageX, imageY, imageW, imageH);
    
        }];
        
        [self.contentView addSubview:bigImageView];
        
    }
    
    // 动态适应行高,返回cell高度
    wself.cellHeight = count * imageH + (count - 1) * margin;

    相关文章

      网友评论

        本文标题:iOS根据图片高度设置imageView高度

        本文链接:https://www.haomeiwen.com/subject/cknovttx.html