를 사용자 정의하고 UITableView
있습니다. 마지막 셀 에서 구분되는 줄을 숨기고 싶습니다 ...이 작업을 수행 할 수 있습니까?
나는 할 수 tableView.separatorStyle = UITableViewCellStyle.None
있지만 tableView의 모든 셀에 영향을 줄 것임을 알고 있습니다 . 나는 그것이 나의 마지막 세포에만 영향을 미치기를 원합니다.
를 사용자 정의하고 UITableView
있습니다. 마지막 셀 에서 구분되는 줄을 숨기고 싶습니다 ...이 작업을 수행 할 수 있습니까?
나는 할 수 tableView.separatorStyle = UITableViewCellStyle.None
있지만 tableView의 모든 셀에 영향을 줄 것임을 알고 있습니다 . 나는 그것이 나의 마지막 세포에만 영향을 미치기를 원합니다.
답변:
에 viewDidLoad
다음 줄을 추가하십시오.
self.tableView.separatorColor = [UIColor clearColor];
그리고 cellForRowAtIndexPath
:
iOS 하위 버전
if(indexPath.row != self.newCarArray.count-1){
UIImageView *line = [[UIImageView alloc] initWithFrame:CGRectMake(0, 44, 320, 2)];
line.backgroundColor = [UIColor redColor];
[cell addSubview:line];
}
iOS 7 상위 버전 (iOS 8 포함)
if (indexPath.row == self.newCarArray.count-1) {
cell.separatorInset = UIEdgeInsetsMake(0.f, cell.bounds.size.width, 0.f, 0.f);
}
[cell.contentView addSubview:line]
대신 사용하십시오[cell addSubview:line]
cellForRowAtIndexPath
. 세포는 재사용된다는 것을 기억하십시오. 이 셀을 재사용 할 때마다 다른 구분선보기가 추가됩니다. 큰 목록에서는 스크롤 성능에 영향을 줄 수 있습니다. 그리고 그것은 그것을하는 올바른 방법이 아닙니다.
다음 코드를 사용할 수 있습니다 :
빠른 :
if indexPath.row == {your row number} {
cell.separatorInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: .greatestFiniteMagnitude)
}
또는 :
cell.separatorInset = UIEdgeInsetsMake(0, 0, 0, UIScreen.main.bounds.width)
기본 여백 :
cell.separatorInset = UIEdgeInsetsMake(0, tCell.layoutMargins.left, 0, 0)
엔드-투-엔드 구분 기호 표시
cell.separatorInset = .zero
목표 -C :
if (indexPath.row == {your row number}) {
cell.separatorInset = UIEdgeInsetsMake(0.0f, 0.0f, 0.0f, CGFLOAT_MAX);
}
UITableView
허용 된 답변은 있지만 그룹에는 작동 하지 않습니다.
self.tableView.separatorColor = [UIColor clearColor];
.
cell.separatorInset = UIEdgeInsetsMake(0.f, 0.f, 0.f, cell.bounds.size.width-cell.layoutMargins.left);
. cell.layoutMargins.left 값을 빼지 않으면 구분선이 왼쪽 테두리에서 왼쪽 여백 (있는 경우)으로 그려집니다.
textLabel
화면 밖으로 밀어냅니다 .
Hiren 의 답변에 대한 후속 조치 .
의 viewDidLoad에 다음과 같은 라인 :
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
또는 XIB 또는 스토리 보드를 사용하는 경우 " separator "를 " none "으로 변경하십시오.
그리고 CellForRowAtIndexPath 에서 이것을 추가하십시오 :
CGFloat separatorInset; // Separator x position
CGFloat separatorHeight;
CGFloat separatorWidth;
CGFloat separatorY;
UIImageView *separator;
UIColor *separatorBGColor;
separatorY = cell.frame.size.height;
separatorHeight = (1.0 / [UIScreen mainScreen].scale); // This assures you to have a 1px line height whatever the screen resolution
separatorWidth = cell.frame.size.width;
separatorInset = 15.0f;
separatorBGColor = [UIColor colorWithRed: 204.0/255.0 green: 204.0/255.0 blue: 204.0/255.0 alpha:1.0];
separator = [[UIImageView alloc] initWithFrame:CGRectMake(separatorInset, separatorY, separatorWidth,separatorHeight)];
separator.backgroundColor = separatorBGColor;
[cell addSubView: separator];
다음은 동적 셀이있는 테이블 뷰를 표시하는 결과의 예입니다 (하지만 내용이있는 단일 뷰 만 있음). 그 결과 하나에 만 분리자가 있고 모든 "더미"테이블 뷰가 자동으로 추가되어 화면을 채우지 않습니다.
도움이 되었기를 바랍니다.
편집 : 항상 주석을 읽지 않는 사람들에게는 실제로 몇 줄의 코드로 주석을 처리하는 더 좋은 방법이 있습니다.
override func viewDidLoad() {
super.viewDidLoad()
tableView.tableFooterView = UIView()
}
구분 기호를 직접 그리지 않으려면 다음을 사용하십시오.
// Hide the cell separator by moving it to the far right
cell.separatorInset = UIEdgeInsetsMake(0, 10000, 0, 0);
이 API는 iOS 7부터 사용할 수 있습니다.
separatorInset
셀 내용과 분리막을 삽입하는 것으로 보이며 또 다른 해킹이 필요합니다.cell.IndentationWidth = -10000;
separatorInset
상단, 왼쪽 및 하단에 0 으로 설정 하고 오른쪽에 셀 너비를 설정하는 것입니다. cell.separatorInset = UIEdgeInsetsMake(0, 0, 0, cell.bounds.size.width);
이렇게하면 다른 셀 속성을 조정할 필요가 없습니다.
내 개발 환경은
위의 답변은 완전히 작동하지 않습니다.
시도한 후 마침내 작동하는 솔루션은 다음과 같습니다.
let indent_large_enought_to_hidden:CGFloat = 10000
cell.separatorInset = UIEdgeInsetsMake(0, indent_large_enought_to_hidden, 0, 0) // indent large engough for separator(including cell' content) to hidden separator
cell.indentationWidth = indent_large_enought_to_hidden * -1 // adjust the cell's content to show normally
cell.indentationLevel = 1 // must add this, otherwise default is 0, now actual indentation = indentationWidth * indentationLevel = 10000 * 1 = -10000
separatorInset.right = .greatestFiniteMagnitude
당신의 세포에 설정 하십시오.
awakeFromNib
applicationDidBecomeActive
에서 스위프트 3, 스위프트 4 스위프트 (5)는 ,이 같이있는 UITableViewCell의 확장을 작성할 수 있습니다 :
extension UITableViewCell {
func separator(hide: Bool) {
separatorInset.left = hide ? bounds.size.width : 0
}
}
그런 다음 아래와 같이 사용할 수 있습니다 (셀이 셀 인스턴스 인 경우).
cell.separator(hide: false) // Shows separator
cell.separator(hide: true) // Hides separator
테이블 뷰 셀의 너비를 임의의 숫자를 할당하는 대신 왼쪽 삽입으로 할당하는 것이 좋습니다. 일부 화면 크기에서는 현재는 아니지만 나중에는 임의의 숫자로는 충분하지 않기 때문에 구분 기호를 계속 볼 수 있습니다. 또한 가로 모드의 iPad에서는 구분 기호가 항상 보이지 않도록 보장 할 수 없습니다.
iOS 7 및 8을위한 더 나은 솔루션
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
DLog(@"");
if (cell && indexPath.row == 0 && indexPath.section == 0) {
DLog(@"cell.bounds.size.width %f", cell.bounds.size.width);
cell.separatorInset = UIEdgeInsetsMake(0.f, cell.bounds.size.width, 0.f, 0.0f);
}
}
앱이 회전 가능한 경우 — 왼쪽 삽입 상수에 3000.0f를 사용하거나 즉시 계산하십시오. 오른쪽 삽입을 설정하려고하면 iOS 8의 셀 왼쪽에 구분 기호가 표시됩니다.
iOS 7에서 UITableView 그룹화 스타일 셀 구분 기호는 약간 다르게 보입니다. 다음과 같이 보입니다.
나는 이것을하는 Kemenaran의 대답 을 시도했다 .
cell.separatorInset = UIEdgeInsetsMake(0, 10000, 0, 0);
그러나 그것은 나를 위해 작동하지 않는 것 같습니다. 왜 그런지 잘 모르겠습니다. 그래서 Hiren의 답변 을 사용하기로 결정 했지만 UIView
대신을 사용 UIImageView
하여 iOS 7 스타일로 선을 그립니다.
UIColor iOS7LineColor = [UIColor colorWithRed:0.82f green:0.82f blue:0.82f alpha:1.0f];
//First cell in a section
if (indexPath.row == 0) {
UIView *line = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 1)];
line.backgroundColor = iOS7LineColor;
[cell addSubview:line];
[cell bringSubviewToFront:line];
} else if (indexPath.row == [self.tableViewCellSubtitles count] - 1) {
UIView *line = [[UIView alloc] initWithFrame:CGRectMake(21, 0, self.view.frame.size.width, 1)];
line.backgroundColor = iOS7LineColor;
[cell addSubview:line];
[cell bringSubviewToFront:line];
UIView *lineBottom = [[UIView alloc] initWithFrame:CGRectMake(0, 43, self.view.frame.size.width, 1)];
lineBottom.backgroundColor = iOS7LineColor;
[cell addSubview:lineBottom];
[cell bringSubviewToFront:lineBottom];
} else {
//Last cell in the table view
UIView *line = [[UIView alloc] initWithFrame:CGRectMake(21, 0, self.view.frame.size.width, 1)];
line.backgroundColor = iOS7LineColor;
[cell addSubview:line];
[cell bringSubviewToFront:line];
}
이를 사용하는 경우 두 번째 if 문에 올바른 테이블 뷰 높이를 연결하십시오. 나는 이것이 누군가에게 유용하기를 바랍니다.
UITableViewCell 서브 클래스에서 layoutSubviews를 대체하고 _UITableViewCellSeparatorView를 숨기십시오. iOS 10에서 작동합니다.
override func layoutSubviews() {
super.layoutSubviews()
subviews.forEach { (view) in
if view.dynamicType.description() == "_UITableViewCellSeparatorView" {
view.hidden = true
}
}
}
나는이 접근법이 역동적 인 셀이있는 상황에서 작동하지 않을 것이라고 생각합니다 ...
if (indexPath.row == self.newCarArray.count-1) {
cell.separatorInset = UIEdgeInsetsMake(0.f, cell.bounds.size.width, 0.f, 0.f);
}
동적 셀에 대해 어떤 테이블 뷰 방법을 사용하든 상관 없습니다. 삽입 속성을 변경 한 셀은 대기열에서 분리 될 때마다 누락 된 줄 구분 기호가 생길 때마다 항상 삽입 속성을 설정합니다 ... 직접 변경하십시오.
이와 같은 것이 나를 위해 일했습니다 :
if indexPath.row == franchises.count - 1 {
cell.separatorInset = UIEdgeInsetsMake(0, cell.contentView.bounds.width, 0, 0)
} else {
cell.separatorInset = UIEdgeInsetsMake(0, 0, cell.contentView.bounds.width, 0)
}
그렇게하면 모든로드에서 ur 데이터 구조 상태를 업데이트 할 수 있습니다
에서 스위프트 사용하여 아이폰 OS 8.4 :
/*
Tells the delegate that the table view is about to draw a cell for a particular row. (optional)
*/
override func tableView(tableView: UITableView,
willDisplayCell cell: UITableViewCell,
forRowAtIndexPath indexPath: NSIndexPath)
{
if indexPath.row == 3 {
// Hiding separator line for only one specific UITableViewCell
cell.separatorInset = UIEdgeInsetsMake(0, cell.bounds.size.width, 0, 0)
}
}
참고 : 위의 스 니펫은 동적 셀을 사용하여 UITableView에서 작동합니다. 발생할 수있는 유일한 문제는 범주, 정적 유형이없는 구분자 및 테이블보기에 대해 그룹화 된 스타일이있는 정적 셀을 사용할 때입니다. 실제로이 특정 경우에는 각 범주의 마지막 셀을 숨기지 않습니다. 그것을 극복하기 위해, 찾은 해결책은 셀 구분 기호 (IB를 통해)를 none으로 설정 한 다음 코드를 통해 수동으로 선보기를 작성하여 각 셀에 추가하는 것입니다. 예를 들어 아래의 스 니펫을 확인하십시오.
/*
Tells the delegate that the table view is about to draw a cell for a particular row. (optional)
*/
override func tableView(tableView: UITableView,
willDisplayCell cell: UITableViewCell,
forRowAtIndexPath indexPath: NSIndexPath)
{
// Row 2 at Section 2
if indexPath.row == 1 && indexPath.section == 1 {
// Hiding separator line for one specific UITableViewCell
cell.separatorInset = UIEdgeInsetsMake(0, cell.bounds.size.width, 0, 0)
// Here we add a line at the bottom of the cell (e.g. here at the second row of the second section).
let additionalSeparatorThickness = CGFloat(1)
let additionalSeparator = UIView(frame: CGRectMake(0,
cell.frame.size.height - additionalSeparatorThickness,
cell.frame.size.width,
additionalSeparatorThickness))
additionalSeparator.backgroundColor = UIColor.redColor()
cell.addSubview(additionalSeparator)
}
}
이 하위 클래스를 사용하면 세트 separatorInset
가 iOS 9.2.1에서 작동하지 않으며 컨텐츠가 압착됩니다.
@interface NSPZeroMarginCell : UITableViewCell
@property (nonatomic, assign) BOOL separatorHidden;
@end
@implementation NSPZeroMarginCell
- (void) layoutSubviews {
[super layoutSubviews];
for (UIView *view in self.subviews) {
if (![view isKindOfClass:[UIControl class]]) {
if (CGRectGetHeight(view.frame) < 3) {
view.hidden = self.separatorHidden;
}
}
}
}
@end
훨씬 간단하고 논리적 인 방법은 다음과 같습니다.
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
return [[UIView alloc] initWithFrame:CGRectZero];
}
대부분의 경우 마지막 tableCiewCell 구분 기호 만보고 싶지 않습니다. 그리고이 방법은 마지막 tableViewCell 구분 기호 만 제거하므로 구분 기호 삽입을 설정하기 위해 자동 레이아웃 문제 (예 : 회전 장치) 나 하드 코드 값을 생각할 필요가 없습니다.
Swift 3을 사용 하고 가장 빠른 해킹 방법을 채택하면 확장을 사용하여 코드를 향상시킬 수 있습니다 .
extension UITableViewCell {
var isSeparatorHidden: Bool {
get {
return self.separatorInset.right != 0
}
set {
if newValue {
self.separatorInset = UIEdgeInsetsMake(0, self.bounds.size.width, 0, 0)
} else {
self.separatorInset = UIEdgeInsetsMake(0, 0, 0, 0)
}
}
}
}
그런 다음 셀을 구성 할 때 :
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "identifier", for: indexPath)
switch indexPath.row {
case 3:
cell.isSeparatorHidden = true
default:
cell.isSeparatorHidden = false
}
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath)
if cell.isSeparatorHidden {
// do stuff
}
}
이것을 달성하는 가장 좋은 방법은 기본 라인 분리, 서브 클래스를 해제하는 것입니다 UITableViewCell
와의 하위 뷰 같은 사용자 정의 행 분리를 추가 contentView
- 유형의 객체 제시하는 데 사용되는 사용자 정의 셀 아래 참조 SNStock
두 개의 문자열 속성을 가지고, ticker
및 name
:
import UIKit
private let kSNStockCellCellHeight: CGFloat = 65.0
private let kSNStockCellCellLineSeparatorHorizontalPaddingRatio: CGFloat = 0.03
private let kSNStockCellCellLineSeparatorBackgroundColorAlpha: CGFloat = 0.3
private let kSNStockCellCellLineSeparatorHeight: CGFloat = 1
class SNStockCell: UITableViewCell {
private let primaryTextColor: UIColor
private let secondaryTextColor: UIColor
private let customLineSeparatorView: UIView
var showsCustomLineSeparator: Bool {
get {
return !customLineSeparatorView.hidden
}
set(showsCustomLineSeparator) {
customLineSeparatorView.hidden = !showsCustomLineSeparator
}
}
var customLineSeparatorColor: UIColor? {
get {
return customLineSeparatorView.backgroundColor
}
set(customLineSeparatorColor) {
customLineSeparatorView.backgroundColor = customLineSeparatorColor?.colorWithAlphaComponent(kSNStockCellCellLineSeparatorBackgroundColorAlpha)
}
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
init(reuseIdentifier: String, primaryTextColor: UIColor, secondaryTextColor: UIColor) {
self.primaryTextColor = primaryTextColor
self.secondaryTextColor = secondaryTextColor
self.customLineSeparatorView = UIView(frame:CGRectZero)
super.init(style: UITableViewCellStyle.Subtitle, reuseIdentifier:reuseIdentifier)
selectionStyle = UITableViewCellSelectionStyle.None
backgroundColor = UIColor.clearColor()
contentView.addSubview(customLineSeparatorView)
customLineSeparatorView.hidden = true
}
override func prepareForReuse() {
super.prepareForReuse()
self.showsCustomLineSeparator = false
}
// MARK: Layout
override func layoutSubviews() {
super.layoutSubviews()
layoutCustomLineSeparator()
}
private func layoutCustomLineSeparator() {
let horizontalPadding: CGFloat = bounds.width * kSNStockCellCellLineSeparatorHorizontalPaddingRatio
let lineSeparatorWidth: CGFloat = bounds.width - horizontalPadding * 2;
customLineSeparatorView.frame = CGRectMake(horizontalPadding,
kSNStockCellCellHeight - kSNStockCellCellLineSeparatorHeight,
lineSeparatorWidth,
kSNStockCellCellLineSeparatorHeight)
}
// MARK: Public Class API
class func cellHeight() -> CGFloat {
return kSNStockCellCellHeight
}
// MARK: Public API
func configureWithStock(stock: SNStock) {
textLabel!.text = stock.ticker as String
textLabel!.textColor = primaryTextColor
detailTextLabel!.text = stock.name as String
detailTextLabel!.textColor = secondaryTextColor
setNeedsLayout()
}
}
기본 줄 구분 기호를 비활성화하려면을 사용하십시오 tableView.separatorStyle = UITableViewCellSeparatorStyle.None;
. 소비자 측은 비교적 간단합니다 (아래 예 참조).
private func stockCell(tableView: UITableView, indexPath:NSIndexPath) -> UITableViewCell {
var cell : SNStockCell? = tableView.dequeueReusableCellWithIdentifier(stockCellReuseIdentifier) as? SNStockCell
if (cell == nil) {
cell = SNStockCell(reuseIdentifier:stockCellReuseIdentifier, primaryTextColor:primaryTextColor, secondaryTextColor:secondaryTextColor)
}
cell!.configureWithStock(stockAtIndexPath(indexPath))
cell!.showsCustomLineSeparator = true
cell!.customLineSeparatorColor = tintColor
return cell!
}
아래 코드를 사용하여 문제를 해결하는 데 도움이 될 수 있습니다
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString* reuseIdentifier = @"Contact Cell";
UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier];
if (nil == cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier];
if (indexPath.row != 10) {//Specify the cell number
cell.backgroundView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bgWithLine.png"]];
} else {
cell.backgroundView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bgWithOutLine.png"]];
}
}
return cell;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *cellId = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
NSInteger lastRowIndexInSection = [tableView numberOfRowsInSection:indexPath.section] - 1;
if (row == lastRowIndexInSection) {
CGFloat halfWidthOfCell = cell.frame.size.width / 2;
cell.separatorInset = UIEdgeInsetsMake(0, halfWidthOfCell, 0, halfWidthOfCell);
}
}
사용자 정의 셀을 가져 와서 레이블을 추가하고 레이블과 같은 제약 조건을 설정하여 전체 셀 영역을 포함해야합니다. 생성자에 아래 줄을 작성하십시오.
- (void)awakeFromNib {
// Initialization code
self.separatorInset = UIEdgeInsetsMake(0, 10000, 0, 0);
//self.layoutMargins = UIEdgeInsetsZero;
[self setBackgroundColor:[UIColor clearColor]];
[self setSelectionStyle:UITableViewCellSelectionStyleNone];
}
또한 UITableView 레이아웃 여백을 다음과 같이 설정하십시오.
tblSignup.layoutMargins = UIEdgeInsetsZero;
다른 사람들이 지적했듯이 모든 UITableViewCell 구분 기호를 전체 UITableView 자체에서 끄면 쉽게 숨길 수 있습니다 . 예를 들어 UITableViewController에서
- (void)viewDidLoad {
...
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
...
}
불행히도, 셀 당 할 실제 PITA 단위 는 실제로 요구하는 것입니다.
개인적으로, 나는 변화를 수많은 순열을 시도했다 cell.separatorInset.left
(많은) 다른 사람들이 제안한 것처럼을 다시 했지만 문제는 Apple을 인용하는 것입니다 (강조 추가).
" ...이 속성을 사용하여 현재 셀의 내용 과 표의 왼쪽과 오른쪽 가장자리 사이에 공간을 추가 할 수 있습니다 . 양의 삽입 값 은 셀 내용 과 셀 구분 기호를 표 가장자리에서 안쪽으로 이동시킵니다 . " "
따라서 구분 기호를 오른쪽으로 밀어 분리 기호를 '숨기려고'하면 셀의 contentView도 들여 쓰기 할 수 있습니다. crifan에 의해 제안으로, 당신은 설정하여이 불쾌한 부작용을 보상하기 위해 시도 할 수 cell.indentationWidth
및cell.indentationLevel
적절하게 이동 모든 것을 뒤로,하지만 난 (내용은 아직 들여지고 ...)이 또한 신뢰할 수없는 것으로 나타났습니다.
내가 찾은 가장 신뢰할 수있는 방법 layoutSubviews
은 간단한 UITableViewCell 하위 클래스를 재정의하고 오른쪽 삽입을 설정하여 왼쪽 삽입 에 맞 도록 설정 하여 구분 기호의 너비를 0으로 설정하여 보이지 않게 만드는 것입니다. 핸들 회전]. 또한 하위 클래스에 편의 메서드를 추가하여이 기능을 켭니다.
@interface MyTableViewCellSubclass()
@property BOOL separatorIsHidden;
@end
@implementation MyTableViewCellSubclass
- (void)hideSeparator
{
_separatorIsHidden = YES;
}
- (void)layoutSubviews
{
[super layoutSubviews];
if (_separatorIsHidden) {
UIEdgeInsets inset = self.separatorInset;
inset.right = self.bounds.size.width - inset.left;
self.separatorInset = inset;
}
}
@end
주의 사항 : 원래의 오른쪽 삽입 을 복원하는 신뢰할 수있는 방법이 없으므로 구분 기호를 '숨기기 해제'할 수 없으므로 돌이킬 수없는 hideSeparator
방법을 사용하는 이유는 무엇 입니까 (separatorIsHidden 노출). separatorInset은 재사용 된 셀에 걸쳐 지속되므로 '숨기기 해제'할 수 없으므로 이러한 숨겨진 분리기 셀을 고유 한 reuseIdentifier로 격리해야합니다.
빠른:
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
...
// remove separator for last cell
cell.separatorInset = indexPath.row < numberOfRowsInSection-1
? tableView.separatorInset
: UIEdgeInsets(top: 0, left: tableView.bounds.size.width, bottom: 0, right: 0)
return cell
}
목표 -C :
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
...
// remove separator for last cell
cell.separatorInset = (indexPath.row < numberOfRowsInSection-1)
? tableView.separatorInset
: UIEdgeInsetsMake(0.f, tableView.bounds.size.width, 0.f, 0.f);
return cell;
}
iOS9에서 구분 기호 삽입을 변경하면 text- 및 detailLabel의 위치에 영향을 미치는 문제가있었습니다.
나는 이것을 해결했다
override func layoutSubviews() {
super.layoutSubviews()
separatorInset = UIEdgeInsets(top: 0, left: layoutMargins.left, bottom: 0, right: width - layoutMargins.left)
}