iOS tableView的系統分割線定格設置以及分割線自定制


一、關於分割線的位置。

    分割線的位置就是指分割線相對於tableViewCell.如果我們要根據要求調節其位置,那么在iOS7.0版本以后,提供了一個方法如下:

if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {

    [self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 45, 0, 0)];

}//上、左、下、右的距離,都是CGFloat型

//設置分割線為白色

        [self.tbView setSeparatorColor:[UIColor redColor]];

//UITableViewCell的分隔線格式

        [self.tbView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];

//設置組與組之間間距  不能用- (  float )tableView:( UITableView *)tableView heightForFooterInSection:(  NSInteger )section

    self.tableView.sectionFooterHeight = 1.0;

//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);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM