清除UITableView底部多余的分割线
转载:http://blog.csdn.net/l_ch_g/article/details/9290727
第一种方法:设置uitableView的footerView
1.在.m中加如下方法
-(void)setExtraCellLineHidden: (UITableView *)tableView { UIView *view = [UIView new]; view.backgroundColor = [UIColor clearColor]; [tableView setTableFooterView:view]; [view release]; }
2.调用
- (void)viewDidLoad { [super viewDidLoad]; //设置tableView不能滚动 [self.tableView setScrollEnabled:NO]; //在此处调用一下就可以啦 :此处假设tableView的name叫:tableView [self setExtraCellLineHidden:self.tableView]; }
在iOS4.3和iOS5.0中通过:值得注意的是在iOS4.3中可以直接设置footer为nil,但是在5.0不行,因为UITableView会默认生成一个Footer。(详见iOS Release Notes中的说明:Returning nil from the tableView:viewForHeaderInSection: method (or its footer equivalent) is no longer sufficient to hide a header. You must override tableView:heightForHeaderInSection: and return 0.0 to hide a header.)
plain类型的tableview当显示的数据很少时,下面的cell即使不显示数据也会有分割线,可以通过下面这个函数去掉多余的分割线。
- (void)setExtraCellLineHidden: (UITableView *)tableView { UIView *view =[ [UIView alloc]init]; view.backgroundColor = [UIColor clearColor]; [tableView setTableFooterView:view]; [view release]; }
第二种,隐藏原来的在cell中自定义:
if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; // Drawing our own separatorLine here because I need to turn it off for the // last row. I can only do that on the tableView and on on specific cells. // The y position below has to be 1 less than the cell height to keep it from // disappearing when the tableView is scrolled. UIImageView *separatorLine = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, cell.frame.size.height - 1.0f, cell.frame.size.width, 1.0f)]; separatorLine.image = [[UIImage imageNamed:@"grayDot"] stretchableImageWithLeftCapWidth:1 topCapHeight:0]; separatorLine.tag = 4; [cell.contentView addSubview:separatorLine]; [separatorLine release]; } // Setup default cell setttings. ... UIImageView *separatorLine = (UIImageView *)[cell viewWithTag:4]; separatorLine.hidden = NO; ... // In the cell I want to hide the line, I just hide it. seperatorLine.hidden = YES; ...
设置tableview的样式为none
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;