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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uitableview为分组模式时怎么设置组头标题悬停相关的知识,希望对你有一定的参考价值。

参考技术A 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本回答被提问者采纳

如何将 UITableView 设置为分组?

【中文标题】如何将 UITableView 设置为分组?【英文标题】:How to set UITableView to Grouped? 【发布时间】:2009-02-22 17:37:47 【问题描述】:

在基于 iPhone 导航的应用程序中,我想添加第二个 tableview,但它的设计在 IB 中可用。我添加了一个新的空 XIB 并将 UITableView 拖到它上面。我想通过 IB 设置布局。我已经为这个 tableview 创建了一个控制器,并将 IB 中的 File's Owner 类设置为这个控制器。我也将 tableview 链接到 File's Owner。我将表格视图设置为在 IB 中分组。但是,这不会在运行时转换。我仍然有一个简单的表格视图。事实上,Inspector 设置在运行时都不起作用。我错过了什么?

【问题讨论】:

【参考方案1】:

确保在实例化视图控制器时使用 initWithNibName:bundle: 使用您创建的文件的名称。

【讨论】:

【参考方案2】:
UITableView *myTableView = [[[UITableView alloc] initWithFrame:CGRectMake(0,80,320,480) style:UITableViewStyleGrouped];

【讨论】:

【参考方案3】:

选择您的 tableview 并打开它的检查器。在检查器的第一个选项卡中,展开“TableView”,您应该会看到一个名为 Style 的选项。将其从“普通”更改为“分组”。

如果您找不到这个,请在​​您的 viewdidload 上试试这个 tableView.style = UITableViewStyleGrouped

【讨论】:

tableView.style 是只读属性,这不是最好的方法

以上是关于uitableview为分组模式时怎么设置组头标题悬停的主要内容,如果未能解决你的问题,请参考以下文章

分组模式下 UITableView 的良好数据结构是啥

将分组的 UITableView 设置为从给定部分开始?

extjs 分组网格的组头复选框

如何将 UITableView 设置为分组?

iOS开发 修改tableView的组头悬停位置

使用图像设置 backgroundView 时缺少分组的 UITableView 的单元格分隔符