iOS 7 UITableView : 탐색 모음과 첫 번째 셀 사이의 공간을 제거하는 방법
내 문제는 iOS 7을 그룹화 UITableView
하면 테이블 상단과 첫 번째 셀과의 간격이 있습니다.
이상한 점은 처음으로 콘텐츠를로드 할 때 테이블이 첫 번째 이미지와 같이 정상으로 나타나지만 아래로 스크롤하면 두 번째와 같이 상단과 첫 번째 셀 사이에 공백이 나타납니다.
스타일 플레인을 사용하면이 동작이 나오지 않지만 안타깝게도 그룹화 된 테이블보기를 사용해야합니다.
에 대한 아이디어가 있습니까?
ViewDidLoad
방법 에 이것을 추가하십시오.
self.automaticallyAdjustsScrollViewInsets = NO;
대답은 저와 제 팀에게 매우 재미 있었고 매력적으로 작동했습니다.
- Interface Builder에서 테이블 뷰를 뷰 계층 구조의 다른 뷰 아래로 이동하십시오.
이유:
이 첫 번째보기가 UITableView 인 경우보기 계층 구조의 첫 번째보기에서만 이런 일이 발생 하는 것을 관찰했습니다 . 따라서 다른 모든 유사한 UITableView에는 첫 번째를 제외하고는이 성가신 섹션이 없습니다. UITableView를 뷰 계층 구조의 첫 번째 위치에서 이동하려고 시도했으며 모든 것이 예상대로 작동했습니다.
Storyboard에서 xib 또는 컨트롤러를 선택하여 View Controller의 속성 검사기로 이동합니다. 레이아웃 에서 스크롤보기 삽입 조정을 선택 취소합니다 . 그것은 문제를 해결할 것입니다
그룹화 된 스타일과 1 개의 그룹 만있는 UITableView를 사용하는 경우 대신 일반 스타일을 사용하여 문제를 해결하십시오.
UITableViewController *tableViewController;
tableViewController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
이 문제에 대한 가장 간단한 해결책 tableView
은 다음과 같습니다.
tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.tableView.bounds.size.width, 0.01f)];
이 문제를 해결하려면 ViewController에서이 필드를 선택 취소했는지 확인하십시오.
ViewController >> Attibutes Inspector >> Layout (선택 취소-Scroll View Insets 조정 )
이것이 충분하지 않으면 TableView에서 시도하고 Style을 Plain으로 설정하십시오 .
이것은 당신의 문제를 해결할 것입니다
여러분! 나는 같은 문제가 있었다. 탐색 모음과 첫 번째 셀 사이에 여유 공간이있는 TableView가 나타납니다. 이 코드는 나를 구했습니다.
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0) {
return 10;
}
else return 2;
}
UITableView 자체 위와 셀 사이에도 공간이 있습니다. 위의 두 가지 답변에서 내 솔루션을 찾았습니다. 누구도 두 솔루션을 놓치지 않도록 다시 게시하십시오.
이것은 위에서 공간을 제거했습니다.
self.automaticallyAdjustsScrollViewInsets = NO;
그리고 이것은 셀 아래의 공백을 제거했습니다 : UITableView의 'Style'속성을 'Plain'으로 설정
, 및 을 ( Xcode 7.3.1
를 iOS9
) 사용하고 swift 2
있습니다. 저에게 도움이 된 것을 공유하고 싶습니다.
ViewDidLoad
방법 에 이것을 추가하십시오.
self.automaticallyAdjustsScrollViewInsets = false;
iOS 7부터는 자동으로 그룹 헤더와 일부 공간이 제공됩니다. 앱을 설정 앱과 비교하면 알 수 있습니다. 헤더 높이를 가능한 한 작게 설정하도록 UITableView에 지시하여이 문제를 해결할 수 있습니다. 첫 번째 그룹 머리글을 숨기는 방법을 참조하십시오 .
나는 이것이 오래 전에 대답했다는 것을 알고 있지만 비슷한 상황에 처한 다른 사람들을 위해 결국 나를 위해 일한 것을 공유 할 것입니다.
xib를 사용하는 경우 최상위보기를 선택하고 Attributes Inspector의 Simulated Metrics 영역에서 'Status Bar'를 'None'으로 설정합니다. 내 간격 문제를 바로 수정했습니다.
나를 위해 이것은 작동하지 않았다
self.automaticallyAdjustsScrollViewInsets = NO;
이로 인해 테이블보기가 NavigationBar 아래에있을뿐입니다.
나를 위해 일한 것은 스토리 보드로 이동하여 tableView의 크기를 조정하는 것이 었습니다. 내 tableView는 statusBar를 허용하기 위해 상단에 20px 간격이있는 것 같습니다. 나는 그것을 확장했고 모든 것이 완벽하게 정렬되었습니다.
나는 매우 이상한 상황에서 내 테이블 뷰 중 하나의 상단에서이 여분의 공간을보고 있었다.
UIScrollView
탐색 스택에서 첫 번째 컨트롤러의 루트보기로를 추가 한 후 다음 컨트롤러를 Show Detail
segue 로 제시하면 다음 컨트롤러 가 테이블보기 위에 공간을 갖게됩니다.
나를위한 해결책은 segue를로 변경하는 것이었고 Present Modally
모든 것이 정상으로 돌아갔습니다.
segue 변경의 가장 이상한 부분은 루트 뷰를 추가 하기 전에UIScrollView
내 Show Detail
segue가 다음 컨트롤러를 모달로 제시하고 있다는 것입니다. 그러나 후에 내가 루트를 추가 UIScrollView
의 Show Detail
SEGUE이었다 밀어 (내가 원하지 않는 것을이었다) 다음의 컨트롤러.
유사한 문제가 발생했습니다. 심지어 automaticAdjustsScrollViewInsets를 NO로 설정했습니다. 이것은 나를 위해 해결되었습니다.
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;
{
return CGFLOAT_MIN;
}
에서 UIViewController.h
iOS9 SDK 방법이있다 :
@property(nonatomic,assign) BOOL automaticallyAdjustsScrollViewInsets NS_AVAILABLE_IOS(7_0); // Defaults to YES
재산이 아니므로
self.automaticallyAdjustsScrollViewInsets = NO;
해야한다
-(BOOL)automaticallyAdjustsScrollViewInsets{
return NO;
}
'program tip' 카테고리의 다른 글
Chart.js multiTooltip 레이블 (0) | 2020.12.07 |
---|---|
bower는 내부 또는 외부 명령으로 인식되지 않습니다. (0) | 2020.12.07 |
TFS 대 SVN (0) | 2020.12.06 |
Java에서 레이블 (색상 텍스트)의 색상을 어떻게 설정합니까? (0) | 2020.12.06 |
부트 스트랩 팝 오버 콘텐츠는 동적으로 변경할 수 없습니다. (0) | 2020.12.06 |