iOS cell加载纯图片自适应

在网络

先说说今天遇见的坑,在自适应加载去cell的时候遇见了一个坑
- (CGFloat)tableView:(UITableView )tableView heightForRowAtIndexPath:(NSIndexPath )indexPath {
UITableViewCell *cell = [self.tavleView cellForRowAtIndexPath:indexPath];
return cell.frame.size.height;
}
刚开始这样写 死活没发现那里错了 但是就是报错,最后经过大神指点才知道 cell在加载的时候会先走 cellforrowheight这个方法 所以这个方法就报错了
解决的办法就是
- (CGFloat)tableView:(UITableView )tableView heightForRowAtIndexPath:(NSIndexPath )indexPath {
self.tableView.delegate = nil;
UITableViewCell *cell = [self.tavleView cellForRowAtIndexPath:indexPath];
self.tableView.delegate = self;
return cell.frame.size.height;
}
//最后的解决办法就是用模型

  • (UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    GoodDetailPicModel * model = _detailPicArray[indexPath.section];
    //NSLog(@”–%@”,model.imageUrl);
    GoodDetailPicCell * cell = [tableView dequeueReusableCellWithIdentifier:cellID forIndexPath:indexPath];
    [cell.GoodDetailPic sd_setImageWithURL:[NSURL URLWithString:model.imageUrl] placeholderImage:[UIImage
    imageNamed:@”123.jpg”] completed:^(UIImage *image, NSError *error,
    SDImageCacheType cacheType, NSURL *imageURL) {
    if (image && !model.heightStr) {;
    model.heightStr = [NSString stringWithFormat:@”%f”,image.size.height /(image.size.width /
    self.view.frame.size.width)];
    [self.tavleView reloadData];
    }
    }];
    return cell; }
  • (CGFloat)tableView:(UITableView )tableView heightForRowAtIndexPath:(NSIndexPath )indexPath {
    GoodDetailPicModel * model = _detailPicArray[indexPath.section];
    if (model.heightStr) {
    return [model.heightStr floatValue];
    }
    return 44; }

就是在没有加载出来之前 先返回固定高度 等高度计算出来再一一进行relodata

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值