【发布时间】:2015-08-10 09:54:40
【问题描述】:
我在 tableview 中有 15 行此表是动态表,但我希望第 5 行和第 11 行高度为 20(这是幻灯片菜单中的主题菜单)。我在故事板中编辑,但它没有改变。
【问题讨论】:
-
使用
heightForRowAtIndexPath:方法。参考这里stackoverflow.com/questions/3737218/…
我在 tableview 中有 15 行此表是动态表,但我希望第 5 行和第 11 行高度为 20(这是幻灯片菜单中的主题菜单)。我在故事板中编辑,但它没有改变。
【问题讨论】:
heightForRowAtIndexPath: 方法。参考这里stackoverflow.com/questions/3737218/…
把条件放在这里就好了:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if(indexPath.row == 5){
return 20;
}
else{
return 71.0;
}
}
【讨论】:
实现heightForRowAtIndexPath委托。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
CGFloat rowHeight = 10.0;
if(0 == indexPath.section && (5 == indexPath.row || 11 == indexPath.row))
{
rowHeight = 20.0;
}
return rowHeight;
}
【讨论】:
您应该在storyboard 中设置默认高度(这更有可能被使用),如果您想为每个单元格返回不同的高度,那么您应该使用下面的delegate 方法UITableView 并结合条件根据您的要求返回UITableViewCell's 的高度(在您的情况下,要求将第 5 行和第 11 行的高度返回为 20,否则其他行的高度为 50)。你可以这样做 -
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(indexPath.row == 5 || indexPath.row == 11)
return 20.0;
else
return 50.0;
}
【讨论】: