- 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调用) -
swift版本:
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
cell.separatorInset = UIEdgeInsetsZero
cell.layoutMargins = UIEdgeInsetsZero
} 转载自:http://jinqianchina.github.io/2016/03/22/UITableView%E4%BD%BF%E7%94%A8%E4%B8%AD%E7%9A%84%E4%B8%80%E4%BA%9B%E5%88%81%E4%B8%93%E9%97%AE%E9%A2%98%E6%80%BB%E7%BB%93/
时间: 2024-10-03 07:02:00