佚名通过本文主要向大家介绍了uitableviewcell,uitableviewcellstyle,ios uitableviewcell,uitableviewcell 点击,imageview等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: UITableViewCell 如何在 AutoLayout 下根据是否有 ImageView 自适应高度
描述:
解决方案1:
描述:
有两种 cell
的样式,一种是需要加载一个图片的 Cell_A
,一种是没有的 Cell_B
。Cell_B
的高度比 Cell_A
要小。
那么问题来了,如何让 cell
根据情况自动改变高度呢?
我有一个函数来判断每行到底需不需要图片
- (BOOL) hasImageAtIndexPath:(NSIndexPath *)indexPath {
NSDictionary* item = [[dataDict objectForKey:@"items"] objectAtIndex:indexPath.row];
NSString* url = [item objectForKey:@"url"];
return ![url isEqual: @"NULL"];
}
这样写之后,得到的全是 249 这个高度的。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if ([self hasImageAtIndexPath:indexPath]) {
return 249.0;//cell_a
} else {
return 150.0;//cell_b
}
}
UPDATE:
原来 item
里的关键键值对长这个样子,解析出来是一个 NSNull
的对象,并不是一个 NSString
url = "<null>";
解决方案1:
说说我看到的几个问题:
(1)首先你用的语法太老旧了,现在用literal syntax,代码会变成这样:
- (BOOL)hasImageAtIndexPath:(NSIndexPath *)indexPath
{
NSDictionary* item = dataDict[@"items"][indexPath.row];
NSString* url = item[@"url"];
return ![url isEqual:@"NULL"];
}
(2)比较字符串应该用:
[url isEqualToString:@"NULL"];
(3)如果一直是249,那显然hasImageAtIndexPath:有问题;
(4)是否有必要做成两个cell?从你的内容上看丝毫看不到Auto Layout的影子。
您可能想查找下面的文章:
- UITableViewCell加载多张图片导致内存异常暴增
- iOS基础控件IOS的UITableView问题
- UITableViewCell中嵌套UICollectionView,希望前者的高度根据后者的高度而改变
- UITableView显示富文Html列表,有什么实现方案
- (swift)UITableViewCell放置Button,怎么让Cell的高度随着Button的文字长度自动增加
- iOSUITableViewCell按钮点击状态为什么刷新以后会变回到为未点击状态
- 如何获取UITableView编辑模式下的系统自带手势?
- swiftUItableViewCell怎么自定义添加控件、设置样式
- ListView点击事件一个手指点击UITableViewCell不响应
- 无法删除文件无法读源文件或磁盘UITableView无法滚动到底部