UITableView의 각 셀 끝에 나타나는 구분선을 어떻게 변경할 수 있습니까? 가는 구분자 유형의 선 이미지를 갖고 싶습니다.
UITableView의 각 셀 끝에 나타나는 구분선을 어떻게 변경할 수 있습니까? 가는 구분자 유형의 선 이미지를 갖고 싶습니다.
답변:
설정 separatorStyle
에있는 tableview의 UITableViewCellSeparatorStyleNone
. 구분자 이미지를 각 셀에 하위보기로 추가하고 프레임을 올바르게 설정합니다.
이 시도
목표 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")!)
table.separatorStyle = UITableViewCellSeparatorStyle.SingleLine table.separatorColor = UIColor(red: 245/255, green: 245/255, blue: 245/255, alpha: 1.0)
먼저 코드를 작성할 수 있습니다.
{ [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;
}
}
tableView:cellForRowAtIndexPath:
는 셀이 재사용 될 때마다 새 뷰를 추가하고 이전 뷰를 제거하지 않는다는 것입니다. 한 번만 추가해야하므로 UITableViewCell
하위 클래스 에서 추가해야합니다 .
이미지와 함께 패턴화할 구분자의 색상을 설정합니다.
에서 viewDidLoad
:
self.tableView.separatorColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"mySeparatorImage"]];
내 프로젝트는 iOS 7을 기반으로합니다.
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
그런 다음 하위 뷰를 구분 기호로 셀에 넣으십시오!
예를 들어 높이가 1 포인트이고 셀의 프레임만큼 넓은 UIImageView를 추가 한 다음 원점을 셀의 왼쪽 하단 모서리로 설정할 수 있습니다.
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
이것은 확실히 도움이됩니다. 일. 그러나 속성 검사기에서 구분 기호 "없음"을 설정합니다. 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];
가장 오른쪽과 왼쪽을 제외하고는 대부분 표시되지 않습니다.
스위프트 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
구분 기호가없는 기본 옵션, 실선 또는 에칭 된 선을 변경하려면 uitableview의 구분 기호 스타일을 변경하는 두 가지 옵션이 있습니다.
가장 쉬운 방법은 구분선 배경 이미지를 각 셀보기에 포함하는 것입니다. 그런 다음 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 행];
아래에서 시도해 볼 수 있습니다.
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;
}
다음은 이미지 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];