일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- swift3
- Check
- 포켓몬 GO
- 스마트폰
- Example
- setting
- 얻는법
- 포켓볼
- 앱스토어
- 신도림 테크노마트
- 보라카이
- UITableView
- Bitcode
- simulator
- push
- Xcode
- LG유플러스
- 아이폰7
- GCD
- UIView
- 샘플
- 공략
- afterdelay
- error
- swift
- 신도림
- loop
- IOS
- 페이백
- 해몽
- Today
- Total
도래울
UITableView Section 헤더 고정 방지 본문
UITableView를 사용하다 보면 테이블을 Section별로 나눠 사용해야 할 필요가있다.
테이블 타입이 Group이 아닌 Plain타입일 경우 Section의 타이틀을 지정할 경우 스크롤시 헤더가 고정되는 현상을 일으킨다.
하지만 고정이 아닌 스크롤과 동시에 사라지게 하기 위해서는 다음과 같은 코드를 추가하면 해결할수 있다.
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
// 각 세션의 헤더가 스크롤시 고정되있는 현상을 수정하기 위해 위치를 재조정하는 코드 추가
CGFloat sectionHeaderHeight = self.tableView.sectionHeaderHeight;
if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) {
scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
} else if (scrollView.contentOffset.y>=sectionHeaderHeight) {
scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
}
}
테이블뷰는 UIScrollView를 상속받아 구현되어있기 때문에 위와 같은 메소드를 오버라이드해서 구현이 가능하다.
위 코드를 삽입하게 되면 Section의 고정현상이 사라지게 된다.
추가로 Footer뷰를 사용하기 위해서는 아래와 같은 방식을 적용하였다.
CGFloat footerHeight = self.clearAllView.bounds.size.height;
CGFloat height = scrollView.frame.size.height;
CGFloat contentYoffset = scrollView.contentOffset.y;
CGFloat distanceFromBottom = scrollView.contentSize.height - contentYoffset - footerHeight;
if(distanceFromBottom < height )
{
CGFloat diff = footerHeight - (height - distanceFromBottom);
if(diff >= 0 && diff <= footerHeight){
scrollView.contentInset = UIEdgeInsetsMake(0, 0, -diff, 0);
}
}else{
scrollView.contentInset = UIEdgeInsetsMake(0, 0, -footerHeight, 0);
}
}
'개발 > iOS' 카테고리의 다른 글
UIScrollview 페이징 처리 (0) | 2016.04.27 |
---|---|
UITableView에서 header와 footer 사용 하기 (0) | 2016.04.26 |
UIScrollview Delegate 종류 (0) | 2016.04.22 |
swift ActionSheet 예제 (0) | 2016.04.21 |
swift UITableView 예제 (0) | 2016.04.21 |