UItable ViewCell 생성 방법

2930 단어

제1종

  • 첫 번째 단계: - (void)viewDidLoad {} 방법 중
  • //      :
    //     UITableViewCell
    [self.tableView registerClass:[UITableViewCell class]  forCellReuseIdentifier:@"cell”];
    // [self.tableView registerClass:UITableViewCell.class  forCellReuseIdentifier:@"cell”]; 
     //      UITableViewCell
    [self.tableView registerClass:[OrderBtnTableViewCell class] forCellReuseIdentifier:@"cellId"];
    //     
     self.tableView.delegate = self;
    //      
     self.tableView.datasource = self;```
    
    -    :  ```- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath```    
    ```objc
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
                                                               
     cell.textLabel.text = self.titles[indexPath.row];
        
     return cell;
    

    두 번째

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 방법
        static NSString *identifier = @"identifier";
        
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
        
        if (!cell) {
            cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
        }
        
        cell.textLabel.text = self.titles[indexPath.row];
    
        return cell;
    

    주의

  • 먼저 등록
  • 에이전트 재설정
  • cell이nil일 때 새로운cell을 만들어야 할 때 initWithStyle:reuseIdentifier:방법이 아니라 init방법을 사용합니다. 이렇게 하는 것은 새로운cell을 만들 때 identifier를 연결해야 다시 사용할 때 같은 유형을 찾을 수 있기 때문입니다.
  • 일반적으로 if(!cell)에서 새로 셀을 만들 때 이 괄호의 바깥쪽이 아니라 한 번만 초기화하는 속성을 초기화한다.마찬가지로 서로 다른cell이 서로 다른 속성이나 데이터를 설정해야 한다면 괄호 밖에서 실행해야 한다. 괄호 밖에 매번cell이 나타날 때마다 실행되기 때문에 사용하지 않는cell이 서로 다른 속성이나 데이터에 대응할 수 있다.
  • class를 등록하는 것은tableView에게 먼저 캐시 탱크에서 다시 사용할 수 있는cell이 있는지 확인하고 있으면 가져와서 다시 사용하라는 뜻이다.없으면, 이전에 등록된 UItable ViewCell 클래스에 따라 자동으로 셀을 생성하고, 이 클래스에 identifier를 다시 연결합니다.
  • 이 방법은 우리가 수동으로 셀을 만드는 것을 절약했지만 부족한 점이 있다. 애플이 우리에게 제공하는 셀의 양식은 기본값을 제외하고는 사용할 수 없다.
  • 두 번째 방법은 Cell을 사용자 정의할 때 더 많이 사용된다.더 많은 시스템 자체 스타일을 사용할 수 없지만, 사용자 정의cell 클래스를 등록한 다음, 캐시 탱크에서 다시 사용할 수 있는cell을 찾을 수 있습니다. 그렇지 않으면 등록된cell에 따라cell을 만들고 identifier를 연결합니다.물론 dequeueReusableCellWithIdentifier:를 사용할 때 되돌아오는 것도 사용자 정의된 셀 유형일 것이다.
  • 등록된 것은 클라스뿐만 아니라nib일 수도 있다. 즉, xib를 통해 만들어진cell을 등록할 수 있다는 것은 위의 방법과 일치한다.

  • 중용 메커니즘 원리

  • 만약에 핸드폰 화면에 5개의cell(번호 0-4)을 동시에 표시할 수 있다면 사용자가 테이블뷰를 위로 미끄러질 때 6개의cell이 나타날 것이고 1개의cell이 사라지지 않기 때문에 6개의UItableViewCell을 만들 것이다.일곱 번째 셀이 나타나면 첫 번째 셀이 화면에서 완전히 사라집니다. 이 때 첫 번째 셀을 제거하지 않고 캐시 탱크에 넣고 복용을 기다립니다.이때 일곱 번째cell은 먼저 캐시 탱크에서 재사용 가능한cell이 있는지 찾아보고, (즉 사라진 첫 번째cell이) 있는 것을 발견하면 다시 만드는 것이 아니라 재사용을 가져온다.이렇게 하면 하나가 사라지고 다음에 이것을 다시 사용할 것입니다. 그러면 최소한의cell을 만들어서 수요를 충족시킬 수 있습니다.
  • 좋은 웹페이지 즐겨찾기