- tableview中cell的系统分隔线问题(分隔线顶满或者缩短)
//tableview代理方法,设置系统cell的分隔线 -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { if (0 == indexPath.section) { if (0 == indexPath.row) { //cell分隔线缩短50 if ([cell respondsToSelector:@selector(setSeparatorInset:)]) { [cell setSeparatorInset:UIEdgeInsetsMake(0, 50, 0, 0)]; } }else { //cell分割线顶满(分隔线加长) if ([cell respondsToSelector:@selector(setSeparatorInset:)]) { [cell setSeparatorInset:UIEdgeInsetsZero]; } if ([cell respondsToSelector:@selector(setLayoutMargins:)]) { [cell setLayoutMargins:UIEdgeInsetsZero]; } } }else if (1 == indexPath.section) { if (0 == indexPath.row) { if ([cell respondsToSelector:@selector(setSeparatorInset:)]) { [cell setSeparatorInset:UIEdgeInsetsZero]; } if ([cell respondsToSelector:@selector(setLayoutMargins:)]) { [cell setLayoutMargins:UIEdgeInsetsZero]; } } }else if (2 == indexPath.section){ if (0 == indexPath.row) { if ([cell respondsToSelector:@selector(setSeparatorInset:)]) { [cell setSeparatorInset:UIEdgeInsetsMake(0, 50, 0, 0)]; } } } }
- tableview下面出现多余的cell(有分割线影响界面)
//隐藏多余cell -(void)setExtraCellLineHidden: (UITableView *)tableView { UIView *view = [UIView new]; view.backgroundColor = [UIColor clearColor]; [tableView setTableFooterView:view]; }
- 例如:
你要隐藏某个UITableView里面多余的cell
UITableView *tabelDemo = [[UITableView alloc] init];
[self.view addSubview:tabelDemo];
然后直接调用就可以了
[self setExtraCellLineHidden:tabelDemo];
tableview的顶部高度多出的一部分(原因我猜有可能是因为系统自动布局计算了状态栏的高度)
//去掉tableview的顶部高度多出的一部分
self.edgesForExtendedLayout = UIRectEdgeNone;(这里self指当前控制器,只需要在viewDidl
Load调用)
效果图: