iOS开发tableView扩展用法

释放双眼,带上耳机,听听看~!

1.上次我说过了,tableViewCell 有四种类型,使我们能够更快更方便的使用tableView,但是我们普通的使用tableView还是会有很多限制。这一篇我们将介绍tableView的深一些的使用方法

2.废话不多说,上tableView中普通方法解决不掉的问题,文字表达不清,上图

这个界面,也就使我们在开发中经常用到的cell之间又间距的问题。那么遇到此类问题我们将如何解决呢?

3.上干货了,看代码。

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.tableView = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStyleGrouped];
    self.tableView.backgroundColor = AppBgColor;
    self.tableView.delegate = self;
    self.tableView.dataSource = self;
    self.tableView.sectionFooterHeight = 0;
    [self.view addSubview:self.tableView];
}

(1)我们定义tableView有需要注意两个问题,否者你的界面将会出现一些差别:

【1】哥们们做此类界面(cell之间有间隔的),千万不要直接继承tableView直接使用,我们需要定义tableView的格式为UITableViewStyleGrouped,否者你的UI上面tableView的顶部将会出现一个与手机宽度相同,高度约为5的灰色长条。而且如果你直接继承tableView,直接使用的话,我至今没发现如何能够修改他的格式(会修改的哥们们请告知我一下)

【2】第二个需要注意的点就是,self.tableView.sectionFooterHeight = 0;不然的话你会发现你定义cell之间的间距加倍

//这个代理为每个分组有多少个cell(用了这个你什么样式的tableView不能干??)
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 1;
}
//老生常谈的方法不多说
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//用于处理点击效果(使点击效果消失)
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}
//每个组的cell有多高(添加二重判断就能得到每组中具体呢一个cell的高度)
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.section == 0) {
        return 224;
    }
    
    if (indexPath.section == 3) {
        return 83;
    }
    else{
        return 45.5;
    }
}
//区域(有多少个组)
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 4;
}
//头的高度(创建又间距的tableView主要是利用每个组都含有Hearder 和 Foot 以及cell。我们利用)我们设置 Hearder和Foot的高度用于设置cell之间的间距
 - (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{ 
  return 12; 
} 

//点击cell之后掉用的方法 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
//设置消除tableView点击效果
  [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
}

为TA充电
共{{data.count}}人
人已赞赏
iOS文章

iOS开发tabBarViewController使用

2021-6-3 14:09:55

iOS文章

iOS开发NSOperation与GCD之间的关系

2021-6-3 14:29:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索