2013-10-01 1 views
30

UITableView 맞춤 UITableViewCells 가지고 있는데 맞춤 UITableViewCell이 줄을 사용하여 분리 된 미세 조정할 수 :iOS7에 마지막 셀 전폭 분리기 아래

self.separatorInset = UIEdgeInsetsMake(0, kDefaultSeparatorLeftInset, 0, 0); 

그러나 단면의 바닥에있는 셀 설정 한 사용자 정의 UIEdgeInsets을 무시하는 기본 구분 기호가 있습니다.

모두 같은 너비로 구분 기호를 사용하고 싶습니다. 수동으로 구분선을 다시 그려야하는 이유는 무엇입니까?

UITableView with wide section separator in iOS7

답변

12

는 사용 UITableViewStyle-UITableViewStylePlain 설정하고 빈 바닥 글을 설정하는 것입니다 의 모든 기능을 제공하지만 전폭 분리 기호가없는 섹션을 제공합니다.

enter image description here

+1

이것은 좋은 솔루션이지만 기본 구분 기호를 숨기고 내 테이블 셀의 맨 아래에 1 픽셀보기를 추가하는 것을 선호합니다. – Sulthan

+6

나는 동일한 상황을 가지고 있으며 마지막 셀을 두 드릴 때까지 작동합니다. 마지막 분리 기호를 탭한 후 다시 전체 너비로 변경하고'[self.tableView setSeparatorInset : UIEdgeInsetsMake (0, 15, 0, 0)] '코드를 변경하면 도움이되지 않습니다. 어떤 해결책? – lvp

+1

'viewForFooterInSection'은 실제로 필요하지 않습니다. .01f를'heightForFooterInSection'으로 반환하면 속임수를 쓰는 것처럼 보입니다. 더 이상 매달린 구분 기호가 없습니다! – Nuthatch

2

사용하는 대신 개별 세포의있는 tableView 자체에 separatorInset 재산. tableView의 separatorInset은 셀에 의해 재정의 될 수있는 기본 인셋과 하단의 "추가"셀에 대한 인세 트를 설정합니다. UITableViewStylePlain이 제공하지 않기 때문에,

-(UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section 
{ 
    return [[UIView alloc] initWithFrame:CGRectZero]; 
} 

-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section 
{ 
    return 0.01f; 
} 

이 일부에 대한 만족스러운 해결책이 될 수 없습니다 : 나는 유일한 진짜 해결책을 발견 한 몇 가지 실험 후

+6

가있는 tableView의이'separatorInset'는 각 섹션의 시작과 끝의 구분에 영향을주지 않습니다 변경. 이들은 영구적으로 tableView의 너비를 채우는 것처럼 보입니다. 'separatorInset'을 변경하면 중간 분리 기호에만 영향을줍니다. –

2

테이블을 빈 바닥 글 보내기 나는 해결책을 발견 한 몇 가지 실험 후

self.tableFooterView = [[UIView alloc] init] 
+0

사람들이 이것을 어떻게 사용하지 않는지 나는 모른다. 이것은 다른 방법이 나에게 많은 문제를 줄 때 완벽하게 작동했습니다. –

4

을! tableFooterView은 다음과 같이 구분을 적용 할 수 있습니다 iOS7에있는 불행하게도

UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)]; 
UIView *v2 = [[UIView alloc] initWithFrame:CGRectMake(0, -1, 320, 2)]; 
v2.backgroundColor = [UIColor whiteColor]; 
v.backgroundColor = [UIColor whiteColor]; 
[v addSubview:v2]; 
self.tableView.tableFooterView = v; 
+0

이것은 나를 위해 일했습니다! 또한 viewForFooterInSection에서 'v'를 반환했습니다. 감사! – Jacob