UITableView 구분선


답변:


93

설정 separatorStyle에있는 tableview의 UITableViewCellSeparatorStyleNone. 구분자 이미지를 각 셀에 하위보기로 추가하고 프레임을 올바르게 설정합니다.


1
예를 들어 주실 수 있습니까?
모바일 개발자 iOS Android

[separatorImageView setFrame : CGRectMake (0, 0, cell.frame.size.width, separatorImageView.image.size.height)];
Felix

[cell.imageView setFrame : CGRectMake (0, 0, cell.frame.size.width, cell.frame.size.height)]; 그렇게 할 수 없었습니다 :(
cV2

그리고 셀이 화면을 채우지 않을 때 일반 UITableView가 그리는 것은 어떻습니까?
Christian Schnorr 2012

4
이 답변이 구분선 버그로 인해 여전히 최고라는 것은 슬픈 일입니다.
언일 2014-06-24

62

이 시도

목표 C

  [TableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];

  [TableView setSeparatorColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"Divider_line@2x.png"]]];

빠른

    tableView.separatorStyle = UITableViewCellSeparatorStyle.SingleLine
    tableView.separatorColor = UIColor(patternImage: UIImage(named: "YOUR_IMAGE_NAME")!)

1
감사합니다!
Septronic 2015 년

감사합니다 @ Sakshi-이미지 대신 구분 색상을 설정했는데 너무 멋져 보입니다. table.separatorStyle = UITableViewCellSeparatorStyle.SingleLine table.separatorColor = UIColor(red: 245/255, green: 245/255, blue: 245/255, alpha: 1.0)
fs_tigre

29

먼저 코드를 작성할 수 있습니다.

{    [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];}

그 후

{    #define cellHeight 80 // You can change according to your req.<br>
     #define cellWidth 320 // You can change according to your req.<br>

    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath  *)indexPath
    {
         UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"seprater_line.png"]];
        imgView.frame = CGRectMake(0, cellHeight, cellWidth, 1);
        [customCell.contentView addSubview:imgView];
         return  customCell;

     }
}

3
셀에 하위 뷰를 추가하는 이와 같은 솔루션의 문제 tableView:cellForRowAtIndexPath:는 셀이 재사용 될 때마다 새 뷰를 추가하고 이전 뷰를 제거하지 않는다는 것입니다. 한 번만 추가해야하므로 UITableViewCell하위 클래스 에서 추가해야합니다 .
Gavin

7

이미지와 함께 패턴화할 구분자의 색상을 설정합니다.

에서 viewDidLoad:

self.tableView.separatorColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"mySeparatorImage"]];

5

내 프로젝트는 iOS 7을 기반으로합니다.

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

그런 다음 하위 뷰를 구분 기호로 셀에 넣으십시오!


1
그것은 질문에 대한 답이 아닙니다.
King-Wizard

4

이 시도:

UIImageView *separator = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"separator.png"]];
[cell.contentView addSubview: separator];

그것이 내가 어떻게 잘 작동하게했는지에 대한 예입니다.

테이블보기의 구분 기호 스타일을 없음으로 설정해야합니다.


4

예를 들어 높이가 1 포인트이고 셀의 프레임만큼 넓은 UIImageView를 추가 한 다음 원점을 셀의 왼쪽 하단 모서리로 설정할 수 있습니다.


6
테이블보기에 대한 기본 구분자 스타일을 끄는 것을 잊지 마십시오.[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
Jasarien 2011 년

시작할 수 있도록 대략적인 코드를 줄 수 있습니까? 원점을 셀의 왼쪽 하단 모서리로 어떻게 설정할 수 있습니까?
모바일 개발자 iOS Android

4

XCode 10.2.1에서 스토리 보드를 통해이 작업을 수행하는 방법은 다음과 같습니다. 구분자는 기본적으로 default라인입니다. none선을 제거하려면로 설정하십시오 .

tableview_separator


2

이것은 확실히 도움이됩니다. 일. 그러나 속성 검사기에서 구분 기호 "없음"을 설정합니다. cellForRowAtIndexPath 메서드에 다음 코드 작성

 UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(0,           
 cell.contentView.frame.size.height - 1.0,      
 cell.contentView.frame.size.width, 1)];

    lineView.backgroundColor = [UIColor blackColor];
    [cell.contentView addSubview:lineView];

나는 이것을 시도했지만 [cell.contentView bringSubviewToFront:lineView];가장 오른쪽과 왼쪽을 제외하고는 대부분 표시되지 않습니다.
Timothy Swan

2

스위프트 3/4

사용자 지정 구분선, UITableViewCell의 하위 클래스 인 사용자 지정 셀 (또는 사용자 지정이 아닌 셀의 경우 CellForRow 또는 WillDisplay TableViewDelegates)에이 코드를 넣습니다.

let separatorLine = UIView.init(frame: CGRect(x: 8, y: 64, width: cell.frame.width - 16, height: 2))
separatorLine.backgroundColor = .blue
addSubview(separatorLine)

viewDidLoad 메서드에서 :

tableView.separatorStyle = .none

0

구분 기호가없는 기본 옵션, 실선 또는 에칭 된 선을 변경하려면 uitableview의 구분 기호 스타일을 변경하는 두 가지 옵션이 있습니다.

  1. 가장 쉬운 방법은 구분선 배경 이미지를 각 셀보기에 포함하는 것입니다. 그런 다음 tableview에서 셀의 위치를 ​​확인하여 셀 상단 또는 셀 하단에 구분선을 제공하는 올바른 배경 이미지를 적용 할 수 있습니다.

    tableview의 viewDidLoad에서 구분 기호 스타일을 없음으로 설정하십시오.

    [self.tableView setSeparatorStyle : UITableViewCellSeparatorStyleNone];

    (UITableViewCell *) tableView : (UITableView *) tableView cellForRowAtIndexPath : (NSIndexPath *) indexPath 함수에서 배경 이미지 설정

     UIImage* yourBgImg = [[UIImage imageNamed:@"bgImage.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(5, 5, 5, 5)];
    

    cell.backgroundView = [[UIImageView 할당] initWithImage : yourBgImg];

    다음을 사용하여 섹션에서 셀의 위치를 ​​확인하십시오.

    NSInteger sectionRows = [tableView numberOfRowsInSection : [indexPathsection]]; NSInteger 행 = [indexPath 행];

  2. 구분선을 셀로 추가합니다. 여기에 최근 게시물이 있습니다. http://www.dimzzy.com/blog/2012/01/separator-cells-for-uitableview/#disqus_thread

0

아래에서 시도해 볼 수 있습니다.

UIView *separator = [[UIView alloc] initWithFrame:CGRectMake(0, cell.contentView.frame.size.height - 1.0, cell.contentView.frame.size.width, 1)];
separator.backgroundColor = myColor;
[cell.contentView addSubview:separator];

또는

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
   UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"separator.png"]];
   imageView.frame = CGRectMake(0, 100, 320, 1);
   [customCell.contentView addSubview:imageView];

   return customCell;
}

0

다음은 이미지 UITableView에 대한를 만들고이를 구분선으로 사용하여 a에 사용자 지정 구분선을 추가하는 다른 방법 CALayer입니다.

// 구분선의 이미지에 대한 CALayer를 만듭니다.

CALayer *separator = [CALayer layer];
separator.contents = (id)[UIImage imageNamed:@"myImage.png"].CGImage;
separator.frame = CGRectMake(0, 54, self.view.frame.size.width, 2);
[cell.layer addSublayer:separator];

0

각 tableview 셀 아래에 구분선을 추가하는 가장 간단한 방법은 스토리 보드 자체에서 수행 할 수 있습니다. 먼저 tableview를 선택한 다음 속성 관리자에서 구분선 속성을 한 줄로 선택합니다. 그런 다음 구분 기호 삽입을 사용자 정의로 선택하고 왼쪽 삽입을 왼쪽에서 0으로 업데이트하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.