美文网首页
tableViewCell自适应网络图片行高

tableViewCell自适应网络图片行高

作者: 牛1688 | 来源:发表于2017-01-15 15:01 被阅读0次

    ==========LJFImageDetailCollection.h=========

    //

    LJFImageDetailCollection.h

    #import

    @interfaceLJFImageDetailTableContr :UITableViewController

    @property(nonatomic,strong)NSArray* imagesArray;

    @end

    ========LJFImageDetailCollection.m========

    #define PRODUCTDETAIL @"http://59.110.64.56/liangpin/upload/goods/album/large/detail_"

    #import"LJFImageDetailTableContr.h"

    #import"LJFTableViewCell.h"

    @interfaceLJFImageDetailTableContr()

    @property(nonatomic,strong)NSMutableDictionary*

    dictImag ;

    @property(nonatomic,strong)NSMutableDictionary*

    dictH ;

    @property(nonatomic,strong)NSMutableArray*

    imagearry ;

    @end

    @implementationLJFImageDetailTableContr

    staticNSString*constreuseIdentifier =@"Cell";

    - (void)viewDidLoad {

    [superviewDidLoad];

    [self.tableViewregisterClass:[LJFTableViewCellclass]forCellReuseIdentifier:@"cell"];

    self.tableView.showsVerticalScrollIndicator=NO;

    self.tableView.showsHorizontalScrollIndicator=NO;

    self.dictImag= [NSMutableDictionarydictionary];

    self.dictH= [NSMutableDictionarydictionary];

    self.imagearry= [NSMutableArrayarray];

    }

    - (void)didReceiveMemoryWarning {

    [superdidReceiveMemoryWarning];

    }

    -(void)setImagesArray:(NSArray*)imagesArray{

    _imagesArray= imagesArray;

    __blocktypeof(self) weakSelf =self;

    for(inti =0;i < imagesArray.count; i++ ){

    NSURL* url = [NSURLURLWithString:[NSStringstringWithFormat:@"%@%@",PRODUCTDETAIL,self.imagesArray[i]]];

    UIImageView* imageView = [[UIImageViewalloc]init];

    [self.imagearryaddObject:imageView];

    [imageViewsd_setImageWithURL:urlcompleted:^(UIImage*image,NSError*error,SDImageCacheTypecacheType,NSURL*imageURL) {

    NSString* urlStr = [imageURLabsoluteString];

    [weakSelf.dictImagsetObject:imageforKey:urlStr];

    CGFloatheight = [UIScreenmainScreen].bounds.size.width/ (image.size.width/image.size.height);

    NSString* heiStr = [NSStringstringWithFormat:@"%f",height];

    [weakSelf.dictHsetObject:heiStrforKey:urlStr];

    [weakSelf.tableViewreloadData];

    }];

    }

    }

    #pragma

    mark

    - (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section{

    returnself.imagesArray.count;

    }

    - (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{

    NSString* urlStr = [NSStringstringWithFormat:@"%@%@",PRODUCTDETAIL,self.imagesArray[indexPath.item]];

    LJFTableViewCell*cell = [tableViewdequeueReusableCellWithIdentifier:@"cell"];

    cell.imageView.image= [self.dictImagobjectForKey:urlStr];

    cell.selectionStyle=UITableViewCellSelectionStyleNone;

    returncell;

    }

    -(CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath{

    NSString* urlStr = [NSStringstringWithFormat:@"%@%@",PRODUCTDETAIL,self.imagesArray[indexPath.item]];

    NSString* heightStr = [self.dictHobjectForKey:urlStr];

    CGFloatheight = [heightStrfloatValue];

    if(height >10) {

    returnheight;

    }else{

    return10;

    }

    }

    @end

    ======LJFCollectionViewCell.h======

    #import

    #import"LJFTableImageView.h"

    @interfaceLJFTableViewCell :UITableViewCell

    @property(nonatomic,strong)LJFTableImageView*

    imageV;

    @end

    ========LJFCollectionViewCell.m ==========

    //

    LJFCollectionViewCell.m

    #import"LJFTableViewCell.h"

    @interfaceLJFTableViewCell()

    @end

    @implementationLJFTableViewCell

    -(instancetype)initWithFrame:(CGRect)frame{

    self= [superinitWithFrame:frame];

    if(self) {

    for(UIView* viewinself.subviews) {

    [viewremoveFromSuperview];

    }

    [selfaddSubview:self.imageV];

    }

    returnself;

    }

    -(void)layoutSubviews{

    [superlayoutSubviews];

    self.imageView.width= [UIScreenmainScreen].bounds.size.width-40;

    self.imageView.height=self.height-10;

    }

    -(LJFTableImageView*)imageV{

    if(_imageV==nil) {

    _imageV= [[LJFTableImageViewalloc]init];

    }

    return_imageV;

    }

    @end

    ========LJFTableImageView.m==========

    #import"LJFTableImageView.h"

    @interfaceLJFTableImageView()

    @end

    @implementationLJFTableImageView

    -(void)layoutSubviews{

    [superlayoutSubviews];

    self.contentMode=UIViewContentModeScaleAspectFill;

    self.clipsToBounds=YES;

    }

    @end

    相关文章

      网友评论

          本文标题:tableViewCell自适应网络图片行高

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