UITableView
2014. 10. 28. 17:51ㆍ개발자료/iOS
반응형
UITableView
## Separator 이슈
if ([m_tableView respondsToSelector:@selector(setSeparatorInset:)]) {
[m_tableView setSeparatorInset:UIEdgeInsetsZero];
[m_tableView setSeparatorInset:UIEdgeInsetsMake(0, 0, 0, 0)];
}
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
if ([tableView respondsToSelector:@selector(setSeparatorInset:)]) {
[tableView setSeparatorInset:UIEdgeInsetsZero];
}
if ([tableView respondsToSelector:@selector(setLayoutMargins:)]) {
[tableView setLayoutMargins:UIEdgeInsetsZero];
}
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
}
## Empty UITableViewCell Line 없애기
UITableView에 데이터가 화면에 꽉찰만큼 없을때 내용이 없는 UITableViewCell 이 출력된다.
이 UITableViewCell 은 하단에 선을 포함하고 있다.
여기에 적힌 내용은 이 선을 없애는 방법이다.
Footer View 에 아무것도 없는 View를 붙여서 더이상 출력되지 않도록 하는게 핵심이다.
# iOS SDK >= 7.0
self._tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
# iOS SDK < 7.0
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return 0.01f;
}
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
return [UIView new];
}
## 셀 이동
# 이동 동작 설정
//-- 수정 모드, 셀 이동 가능
[m_tableView setEditing:YES animated:YES];
//-- 비수정 모드, 셀 이동 불가
[m_tableView setEditing:NO animated:YES];
# UITableViewDataSource Delegate
//-- 편집 모드가 되었을때 해당행이 지움 또는 추가 버튼을 보일지 선택한다.
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
return UITableViewCellEditingStyleNone;
}
//-- 해당 행이 추가 또는 삭제 작업이 가능한지 판단. NO를 반환하면 편집되지 않는다.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{
return YES;
}
//-- 해당 행이 이동가능한지를 리턴한다.
- (BOOL) tableView:(UITableView *)tableViewe canMoveRowAtIndexPath:(NSIndexPath *)indexPath{
return YES;
}
//-- 실제 이동이 이루어졌기 때문에 내부적인 데이터 구조를 재 설정한다.
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath{
//-- 배열 순서 변경 처리
id object = [m_arrTableData objectAtIndex:sourceIndexPath.row];
[m_arrTableData removeObjectAtIndex:sourceIndexPath.row];
[m_arrTableData insertObject:object atIndex:destinationIndexPath.row];
}
반응형
'개발자료 > iOS' 카테고리의 다른 글
No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=armv7s, VALID_ARCHS=armv7) (0) | 2014.10.28 |
---|---|
UITextField (0) | 2014.10.28 |
핫스팟 상태체크(꼼수) (0) | 2014.10.28 |
UIDatePicker (0) | 2014.10.28 |
NSDate, NSDateFormat (0) | 2014.10.28 |