2013-04-10 3 views
0

사용자가 추가 버튼을 클릭 할 때 섹션 헤더를 동적으로 추가하려는 UITableView가 있습니다. 사용자가 필요하지 않으면 헤더를 삭제할 수 있어야합니다. 각 머리글 아래에서 사용자는 관련 항목 목록을 추가 할 수 있어야합니다. 그리고 사용자는 선택한 섹션 아래에서만 동적으로 행을 삽입 할 수 있어야합니다. 이 기능을 구현하려면 몇 가지 아이디어를 제안하십시오. 미리 감사드립니다.동적 섹션 헤더를 UITableView에 삽입하십시오.

+0

- 1 시도한 솔루션에 아무런 입력도 제공하지 않는 경우 – Aaron

답변

0

동적 섹션 헤더를 알려 드리겠습니다. 처음에는 플래그를 유지하고 0으로 설정하십시오. 사용자가 해당 버튼에서 버튼을 클릭하면 메소드 세트 플래그를 1로 설정하고 tableView를 다시로드합니다.

  -(UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
      { 
        if(flag) 
         return aView;//alloc init aView and return. 
        else 
         return nil. 
      } 

마찬가지로 동적 행의 경우 배열이 있고 numberOfRows는 array.count입니다. 버튼을 클릭하면 배열에 하나 이상의 항목을 삽입하고 표를 다시로드하십시오.

이 도움이 되었기를 바랍니다.

0
사용자가 플래그를 설정하고있는 tableview를 다시로드 한 후 그것을이 방법에서 버튼을 클릭

..

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    if(flag) 
    { 
     UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0,320, 30)]; 
     return headerView; 
    } 
    else 
     return nil; 
} 

당신은 같은 테이블보기에서 헤더를 삭제할 수 있습니다 ......

테이블의 헤더보기를 제거하려면 myTable.tableHeaderView 속성을 nil로 설정하면됩니다. 가지고있는 항목 헤더가 실제로 섹션 헤더 인 경우 viewForHeaderInSection 메서드에서 nil을 반환하고 [myTableView reloadData]

을 호출해야 정상적으로 작동합니다.

2

당신은 제거하고 다시 해당 섹션을 추가하여이 작업을 수행 할 수 있습니다, 이것은 당신의 섹션 인덱스가 0이라고 가정 tableView:titleForHeaderInSection:

에 대한 호출을 발생합니다 :

BOOL shouldShowHeader; 
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 
{ 
    shouldShowHeader ? @"Your Header" : nil; 
} 

- (IBAction)buttonAction:(id)sender 
{ 
    shouldShowHeader = !shouldShowHeader; 
    NSIndexSet *set = [NSIndexSet indexSetWithIndex:0]; 
    [self.tableView beginUpdates]; 
    [self.tableView deleteSections:set withRowAnimation:UITableViewRowAnimationNone]; 
    [self.tableView insertSections:set withRowAnimation:UITableViewRowAnimationNone]; 
    [self.tableView endUpdates]; 
} 

바닥 글은 같은 방식으로 작동합니다.

관련 문제