以前一直以为不能单独去掉cell的一行分割线,所以处理特殊的UI时,甚至用嵌套UITableView,最终导致处理逻辑变得相对复杂了;
直到今天才恍然大悟,尼玛还可以这样去"移除"某一行的分割线,心理各种吐血.....
不多说,见代码:
//
// ViewController.m
// CKTableView
//
// Created by CK on 16/5/13.
// Copyright © 2016年 CK. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()<UITableViewDataSource>
{
UITableView *myTableView;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
myTableView = [UITableView new];
myTableView.backgroundColor = [UIColor whiteColor];
myTableView.frame = self.view.bounds;
myTableView.dataSource = self;
[self.view addSubview:myTableView];
if ([myTableView respondsToSelector:@selector(setSeparatorInset:)]) {
[myTableView setSeparatorInset:UIEdgeInsetsZero];
}
if ([myTableView respondsToSelector:@selector(setLayoutMargins:)]) {
[myTableView setLayoutMargins:UIEdgeInsetsZero];
}
}
#pragma mark - - UITableViewDataSource
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return 10;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *identity = @"displaycell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identity];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identity];
}
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
[cell setSeparatorInset:UIEdgeInsetsZero];
}
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
//指定隐藏第二行分割线
if (indexPath.row==2) {
[cell setSeparatorInset:UIEdgeInsetsMake(0, 0, 0, MAXFLOAT)];
}
cell.textLabel.text = [NSString stringWithFormat:@"测试 %lu",indexPath.row];
return cell;
}
@end