2016-08-04 10 views
0

나는 신축성 테이블 뷰 헤더를 만들려고하고 난 후 온라인에이 코드를 보았다 :의 TableView ContentInset 및 ContentOffset

override func viewDidLoad() { 
    tableView.contentInset = UIEdgeInsets(top: kTableHeaderHeight, left: 0, bottom: 0, right: 0) 
    tableView.contentOffset = CGPoint(x: 0, , y: -kTableHeaderHeight) 
    updateHeaderView() 
} 

이 코드를 이해하는 약간의 문제가 발생하고 있습니다.

1)은 처음에 kTableHeaderHeight로 그것을 이동시킴으로써 tableView의 상단에 여백을 추가된다

그래서 본질적으로 무엇인가하고있다 (화면 가정하면, 높이 500 kTableHeaderHeight = 200 0이다) contentInset 속성 (이 이동은 tableView의 프레임을 기준으로합니다). 이제 tableView는 -200에서 500까지 존재합니까?

2) 그러면 경계가 -kTableHeaderHeight까지 이동합니다. contentOffset은 -200에서 500 영역에서 스크롤 할 수있게합니까? 그렇다면이 경우에 contentOffset을 -kTableHeaderHeight으로 사용하는 이유는 무엇입니까? 인셋 양수이면

답변

1

1)은 '아니오'라면, 그 contentOffset가있는 TableView의 상태) 200,500

2와 같은 테이블 뷰 영역을 작게 만든다. 오프셋을 -200으로 설정하면 내용 삽입에 관계없이 표 뷰 제로 지점에서 내용 영점을 200으로 이동합니다. 기본적으로 현재 테이블 뷰 내용을 삽입에 관한 위치에 배치합니다.

그래서 코드는 테이블 뷰 셀 내용 (테이블 뷰 API 헤더 또는 바닥 글과 같이)과 결코 겹치지 않는 사용자 정의 헤더 용 200 포인트 자리를 예약합니다.