1、關於分割線的位置。ios
分割線的位置就是指分割線相對於tableViewCell.若是咱們要根據要求調節其位置,那麼在iOS7.0版本之後,提供了一個方法以下:ui
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {spa
[self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 45, 0, 0)];code
}//上、左、下、右的距離,都是CGFloat型blog
[self.tbView setSeparatorColor:[UIColor redColor]];繼承
//UITableViewCell的分隔線格式it
[self.tbView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];io
//設置組與組之間間距 不能用- ( float )tableView:( UITableView *)tableView heightForFooterInSection:( NSInteger )sectiontable
self.tableView.sectionFooterHeight = 1.0;class
//ios8之後經過這個方法設置組間距 不能用self.tableView . sectionHeaderHeight = 8.0
- ( CGFloat )tableView:( UITableView *)tableView heightForHeaderInSection:( NSInteger )section
{
return 8.0 ;
}
因爲tableView是繼承於scrollView,因此tableview的分割線會產生偏移,能夠採用下面的方法進行設置,從而使分割線能夠充滿整個tableView
iOS8之後的新方法:複製便可
//系統分割線定格設置
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if ([tableView respondsToSelector:@selector(setLayoutMargins:)]) {
[tableView setLayoutMargins:UIEdgeInsetsZero];
}
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
[cell setSeparatorInset:UIEdgeInsetsZero];
}
}
tableViewCell 分割線自定義:首先要把cell自帶的分割線給去掉,使用以下兩種都行,一是把顏色設置爲clearColor,二是風格設置爲UITableViewCellSeparatorStyleNone。
自定義cell分割線
a、把自定義的分割線當成一個View放到cell的contentView上,必定要注意重用問題,因此這個view 要在cell初始化的時候添加上。示例代碼以下:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = nil;
cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"];
cell.accessoryView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"huicellacce"]];
cell.backgroundColor = [UIColor clearColor];
// cell.selected = YES;
UIImageView *imageViewSepE = [[UIImageView alloc]initWithFrame:CGRectMake(47, 49, 200, 1)];
imageViewSepE.image = [UIImage imageNamed:@"godline"];
[cell.contentView addSubview:imageViewSepE];
}
}
聯動
NSIndexPath *moveToIndexPath = [NSIndexPath indexPathForRow:0 inSection:indexPath.row];
// 將右側 tableView 移動到指定位置
[self.tableView selectRowAtIndexPath:moveToIndexPath animated:YES scrollPosition:UITableViewScrollPositionTop];
// 取消選中效果
[self.tableView deselectRowAtIndexPath:moveToIndexPath animated:YES];
//滑動條在左側
tableView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0, 0, tableView.bounds.size.width-7);