UITableView를 사용하다보면 각 셀에 이벤트를 cell단위로 관리하고 싶을 것이다.
이를 위함 메소드들이 UITableViewCell에 있다.
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setEditing:editing animated:animated];
if(selected) {
// 선택 되었을때
} else {
// 선택 되지 않앗을때
}
}
해당셀의 선택 여부에 따라 호출되는 메소드로 selected 를 통해서 선택 되었을때와 안 되었을때를 구분하여 cell을 관리 할수 있다.
참고로 selected는 tap이 모두 이루어 진게 되는 상태를 말한다.
따라서 Highlight 를 처리하는 메소드가 따로 있다.
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
사용법은 위와 같다.
그리고 테이블 삭제를 할때 오른쪽에 삭제 버튼이 생기는 edit 상태일떄를 처리하는 메소드도 제공한다
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
이 세개의 메소드는 보는것처럼 쉽게 이용할수 있다.
그외에 tableView에서 여러 셀을 동시에 편집하는 화면에서 왼쪽 (-) 처럼 생긴 것을 터치했을때 오른쪽에 삭제 버튼이 나타나는 상황을 캐취하는 메소드 또한 있다.
무슨말일까.. 저위에말.. ㅋㅋ
- (void)didTransitionToState:(UITableViewCellStateMask)state {
[superdidTransitionToState:state];
if(state & UITableViewCellStateShowingDeleteConfirmationMask) {
// 삭제버튼이 나타 낫을때
} else {
// 삭제버튼이 없을때
}
}
셀의 변화가 일어 낫을때 불리는 메소드로 의심이 되는데 굳이 상세히짚고 넘어갈 마음은 없다.
if(state & UITableViewCellStateShowingDeleteConfirmationMask) 이부분이 어떤 원리로 작동하는 지는 모르겠다.. 구글링과 나의 껴 마추기로 찾은 조합이니 다른데서 오작동을 할가능성은 다분하다.
이정도만 활용해도 tableView의 셀의 이벤트에 대응할수 있을것이다.
반응형
'2013 이전 > iOS개발' 카테고리의 다른 글
[iPhone 개발] UITableViewCell 위에 UIImageView에 roundCorner 적용 (0) | 2017.02.25 |
---|---|
[iPhone 개발] UITableView 상단 공백 만들기 (0) | 2017.02.25 |
[iPhone 개발] UIImageView 이벤트 처리 (0) | 2017.02.25 |
[iPhone 개발] 전화 번호 -(대쉬) 규칙 적용 함수 (0) | 2017.02.25 |
[iPhone 개발] superview 혹은 superview 의 ViewController object 얻어 오기 (0) | 2017.02.25 |