현재 Android 앱의 iOS 버전을 개발 중입니다. 한 화면에서 일련의 행을 클릭하면 확장되어 정보를 제공합니다. 클릭하기 전에iOS : 확장 셀이있는 TableView
:
클릭 후 :
어떻게 아이폰 OS에서이 동작을 복제 할 수 있습니까? 나는 테이블 뷰를 사용할지 아니면 일반적인 UIView를 생성해야하는지 여부를 알지 못합니다. 나는 자동 레이아웃을 사용하고있다.
현재 Android 앱의 iOS 버전을 개발 중입니다. 한 화면에서 일련의 행을 클릭하면 확장되어 정보를 제공합니다. 클릭하기 전에iOS : 확장 셀이있는 TableView
:
클릭 후 :
어떻게 아이폰 OS에서이 동작을 복제 할 수 있습니까? 나는 테이블 뷰를 사용할지 아니면 일반적인 UIView를 생성해야하는지 여부를 알지 못합니다. 나는 자동 레이아웃을 사용하고있다.
특정 NSIndexPath에서 UITableVIewCell을 다시로드하고 셀의 새 높이를 계산할 수 있습니다.
확인 :
UITableView
에서
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
및 UITableViewDelegate
에서
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
.
UITableView
의 각 그룹에 대한 헤더보기를 사용자 정의하면됩니다. viewforheaderinsection
메서드를 사용하여 UIButton을 반환합니다. 해당 버튼을 탭하면이 선택된 그룹에 UITableViewCells
을 삽입해야합니다. 나는 지금 창문에 있기 때문에 당신에게 코드를 줄 수는 없지만, 매우 간단하다.
UPD : 애플이 샘플 코드를 보면 : 당신이 당신의 테이블 셀 확장을위한 터치 이벤트를받을 때 http://developer.apple.com/library/ios/#samplecode/TableViewUpdates/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010139
이 테이블 컨트롤러
[self.tableView beginUpdates];
[self.tableView endUpdates];
애니메이션 블록 비록에서 다음 호출을 사용 startUpdates를 호출하면 테이블 뷰에서 셀 레이아웃을 새로 고치고 변경 내용을 애니메이션으로 만듭니다. - 이것은 당신의 테이블 뷰 대리인이 다시 조회 할 원인이됩니다 그래서 당신은 당신의 UITableViewDelegate에 다음과 같은 방법을 구현할 수 있도록 (보통은있는 UITableViewController 수 있도록이 설정됩니다) :
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
적절한를 반환합니다이 방법을 확인 터치 이벤트가 수신 된 후에 확장 된 셀 크기. 결과는 멋진 부드러운 셀 확장 애니메이션이 될 것입니다 :)
내 업데이트 된 답변보기 –