以前一直以为不能单独去掉cell的一行分割线,所以处理特殊的UI时,甚至用嵌套UITableView,最终导致处理逻辑变得相对复杂了;
直到今天才恍然大悟,尼玛还可以这样去"移除"某一行的分割线,心理各种吐血.....
不多说,见代码:
//// ViewController.m// CKTableView//// Created by CK on 16/5/13.// Copyright © 2016年 CK. All rights reserved.//#import "ViewController.h"@interface ViewController (){ 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