【问题】
(UIView *) tableView:(UITableView
*)tableView viewForHeaderInSection:(NSInteger)section
方法中的section貌似从1开始而不是从0
【思路】
程序中虽然设置了 self.tableView.sectionHeaderHeight =20
还还是是不行 viewForHeaderInSection 中的section始终还是从1开始。
于是我发现, 如果你使用方法:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 40;
}
就从0开始啦。
尼玛真吭 IOS7的新特性,其实 self.tableView.sectionHeaderHeight
=20 这种效率远远比方法要快。如果不存在特殊需求大家还是直接设置属性来吧。
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 40;
}- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 40)];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 10, tableView.frame.size.width, 20)];
label.font = [UIFont systemFontOfSize:16.0f]; //UILabel的字体大小
label.numberOfLines = 0; //必须定义这个属性,否则UILabel不会换行
label.textColor = CR_RGBCOLOR(170, 170, 170);
label.textAlignment = NSTextAlignmentLeft; //文本对齐方式
[label setBackgroundColor:[UIColor clearColor]];
label.text = self.sectionTitles[section];
[headerView setBackgroundColor:[UIColor clearColor]];
[headerView addSubview:label];
return headerView;
}- (UIView *) tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{return [[CRCustomFooter alloc] init];
}- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSUInteger section = indexPath.section;
NSUInteger row = indexPath.row;if(section == 1){
if (row == 0) {
[self recommendToFriends];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}else if(row == 1){
[self sendFeedback];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}else if(row == 2){
[self rateApp];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}else{
}
}
}
IOS 7 viewForHeaderInSection 的section从1开始而不是从0开始