uitableview为分组模式时怎么设置组头标题悬停

 我来答
运动一圈
2016-07-12 · TA获得超过949个赞
知道大有可为答主
回答量:964
采纳率:92%
帮助的人:486万
展开全部
MJViewController.h

#import <UIKit/UIKit.h>

@interface MJViewController : UIViewController

@end
MJViewController.m

#import "MJViewController.h"

// 省份字典中用到的key
#define kHeader @"header" // 头部标题对应的key
#define kFooter @"footer" // 尾部标题对应的key
#define kCities @"cities" // 城市数组对应的key

@interface MJViewController () <UITableViewDataSource>
{
// NSArray *_allCities; // 所有的城市
NSArray *_allProvinces; // 所有的省份
}
@end

@implementation MJViewController

- (void)viewDidLoad
{
[super viewDidLoad];

// 1.添加tableView
UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped];
tableView.dataSource = self;
[self.view addSubview:tableView];

// 2.初始化数据
_allProvinces = @[

@{
kHeader : @"广东",
kFooter : @"广东好",
kCities : @[@"广州", @"深圳", @"梅州"]
},

@{
kHeader : @"湖南",
kFooter : @"湖南也好",
kCities : @[@"长沙", @"益阳"]
},

@{
kHeader : @"湖北",
kFooter : @"湖北更好",
kCities : @[@"武汉", @"黄冈"]
}
];

// _allCities = @[
// ,
// ,
// @[@"武汉", @"黄冈"],
// @[@"桂林", @"玉林"],
// @[@"杭州", @"温州"],
// @[@"合肥", @"安庆"]
// ];
}

#pragma mark - 数据源方法
#pragma mark 一共有多少组(section == 区域\组)
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return _allProvinces.count;
}

#pragma mark 第section组一共有多少行
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// 1.取得第section组的省份
NSDictionary *province = _allProvinces[section];

// 2.取得省份里面的城市数组
NSArray *cities = province[kCities];

return cities.count;

// // 1.取得第section组的所有城市
// NSArray *sectionCities = _allCities[section];
//
// // 2.第section组城市的个数
// return sectionCities.count;
}

#pragma mark 返回每一行显示的内容(每一行显示怎样的cell)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];

// NSString *text = _allCities[indexPath.section][indexPath.row];
// NSArray *sectionCities = _allCities[indexPath.section];

// 1.取出第section组第row行的文字数据
// 取出第section组的省份 中 城市数组里面 第 row行的 数据

NSDictionary *province = _allProvinces[indexPath.section];
NSArray *cities = province[kCities];

NSString *text = cities[indexPath.row];

// 2.展示文字数据
cell.textLabel.text = text;
return cell;
}

#pragma mark 第section组显示的头部标题
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
// if (section == 0) return @"广东";
// if (section == 1) return @"湖南";
// if (section == 2) return @"湖北";
// if (section == 3) return @"广西";
// if (section == 4) return @"浙江";
// if (section == 5) return @"安徽";

NSDictionary *province = _allProvinces[section];

return province[kHeader];
}

#pragma mark 第section组显示的尾部标题
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
{
// if (section == 0) return @"广东好";
// if (section == 1) return @"湖南也好";
// if (section == 2) return @"湖北更好";
// if (section == 3) return @"广西一般般";
// if (section == 4) return @"浙江应该可以吧";
// if (section == 5) return @"安徽确实有点坑爹";

return _allProvinces[section][kFooter];
}

@end
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式