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

人已赞赏
iOS文章

iOS开发国际化NSLocalizedString用法

2020-4-29 4:32:08

iOS文章

iOS 获取手机通讯录的联系人

2020-4-29 5:46:48

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索