콘텐츠 영역의 크기에 영향을주지 않는 UITableView 상단에 빈 공간을 추가해야합니다. 콘텐츠를 아래로 이동하거나 빈 셀을 추가하는 것은 내가 원하는 것이 아닙니다. 대신 오프셋을 원합니다.
어떻게?
답변:
내가 당신을 따르고 있는지 잘 모르겠지만 같은 곤경에 처한 것 같아요. 제 경우에는 화면 상단의 ADBannerView에 약간의 공간을 제공해야하므로 제가 추가 한 viewDidLoad 메서드에 있습니다.
[self.tableView setContentInset:UIEdgeInsetsMake(50,0,0,0)];
취하는 값은 UIEdgeInsetsMake (top, left, bottom, right)입니다.
또는 Swift와 동일합니다.
self.tableView.contentInset = UIEdgeInsetsMake(50, 0, 0, 0)
Swift 4.2 :
self.tableView.contentInset = UIEdgeInsets(top: 50, left: 0, bottom: 0, right: 0)
"빈"헤더보기를 테이블에 추가 할 수 있습니다. 이렇게하면 오프셋이있는 테이블의 초기 모양이 제공되지만 스크롤을 시작하면 오프셋이 사라집니다. 그것이 당신이 원하는 것인지 확실하지 않습니다.
영구적 인 오프셋이 필요하고 아직 섹션 헤더를 사용하지 않는 경우 섹션 헤더에 대한 사용자 정의보기를 만들어 위와 비슷하게 오프셋을 만들 수 있습니다. 특히 섹션이 하나 뿐인 경우 영구적 인 오프셋 모양을 제공 할 수 있습니다. .
당신이 찾고있는 것 중 하나라도 들리면 샘플 코드를 게시 할 수 있습니다.
.NET Framework 주위에 '보기' 를 래핑하려는 것 같습니다UITableView
. 당신이있는 경우 UITableViewController
IB에는 UITableView
자동으로 설정됩니다 view
의 UITableViewController
. view
속성을 법선으로 변경 하고 거기에 UIView
추가 UITableView
하고 오프셋을 제공합니다.
--- 편집 --- 방금 내 게시물을 읽고 거의 의미가 없다고 생각했습니다. :)를 만들 때 UITableViewController
(의사 코드) :
UITableViewController.view = UITableView
이것은 실제 테이블이 전체 공간을 차지하고 다른 뷰를 추가 할 수도 없음을 의미합니다. 그래서 당신은 변경해야
UITableViewController.view = UIView
그것에 당신의 테이블을 추가하십시오 UIView
이 답변을이 답변과 결합했습니다 : https://stackoverflow.com/a/9450345/1993937
tableView가 콘텐츠 삽입의 상단에 나타나도록하기 위해, 뷰가 처음 나타날 때 tableView를 약간 아래로 스크롤하여 상단의 공간이 잘리지 않도록합니다. (18은 나의 최고 간격)
[self.tableView setContentInset:UIEdgeInsetsMake(18,0,0,0)];
[self.tableView setContentOffset:
CGPointMake(0, -self.songListTable.contentInset.top) animated:YES];