(0069)iOS 개발 의 dequeue Reusable Cell With Identifier 의 두 가지 방법의 차이
3807 단어 iOS 개발 노트
:http://blog.csdn.net/mandmg/article/details/52456862
if(fobject)는 BOOL 변수 입 니 다.
if (fobj != nil)포인터 또는 값
이것 이 규범 이다.
Cell 에 등록 한 적 이 있다 면 사용 가능 한 cell 이 없 을 때 전 자 는 nil 로 돌아 갑 니 다.후 자 는 항상 등 록 된 nib 나 class 에서 사용 가능 한 Cell 을 만 듭 니 다.즉,전 자 는 nil 을 수 동 으로 검사 해 야 하고 후 자 는 필요 하지 않다 는 것 이다.
만약 당신 이 cell 에 등록 한 적 이 없다 면,사용 가능 한 cell 이 없 을 때 전 자 는 nil,후 자 는...............................................즉,후 자 를 호출 하 는 것 이다. cell 에 등록 한 적 이 있 는 지 확인 해 야 합 니 다.
UITableView 에는 Cell 을 다시 사용 하 는 두 가지 방법 이 있 습 니 다.
- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier;
- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(6_0);
iOS 6 에서 dequeue Reusable Cell With Identifier:dequeue Reusable Cell With Identifier:forIndexPath:대 체 됩 니 다.이렇게 되면 표 보기에 서 UITable View Cell 대상 을 만 들 고 추가 하면 더욱 간단 하고 유창 해 집 니 다.또한 dequeue Reusable Cell With Identifier:forIndexPath 를 사용 하면 반드시 cell 로 돌아 갑 니 다.시스템 은 기본적으로 cell 을 다시 사용 할 수 없 을 때 자동 으로 새로운 cell 을 만 듭 니 다.
dequeue Reusable Cell With Identifier:forIndexPath:를 사용 하려 면 다음 두 가지 조합 방법 과 함께 사용 해 야 합 니 다.
// Beginning in iOS 6, clients can register a nib or class for each cell.
// If all reuse identifiers are registered, use the newer -dequeueReusableCellWithIdentifier:forIndexPath: to guarantee that a cell instance is returned.
// Instances returned from the new dequeue method will also be properly sized when they are returned.
- (void)registerNib:(UINib *)nib forCellReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(5_0);
- (void)registerClass:(Class)cellClass forCellReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(6_0);
1.NIB 로 Cell 을 사용자 정의 했다 면 호출 합 니 다. registerNib:forCellReuseIdentifier:
2.코드 로 Cell 을 사용자 정의 했다 면 registerClass:forCellReuseIdentifier 를 호출 하 십시오.
이 두 가지 방법 은 UITableView 를 만 들 때 호출 할 수 있 습 니 다.
이렇게 하면 table View:cell ForRow AtIndexPath:방법 에서 다음 코드 를 절약 할 수 있 습 니 다.
static NSString *CellIdentifier = @"Cell";
if (cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
대신 다음 코드 는 다음 과 같 습 니 다.UITableView Cell*cell=[tableView dequeue Reusable Cell With Identifier:@"Cell"forIndexPath:indexPath];
1.NIB 사용
1.xib 에서 지정 한 cell 의 Class 를 사용자 정의 cell 의 형식 으로 합 니 다(File's Owner 의 Class 를 설정 하 는 것 이 아 닙 니 다)
2,registerNib:forCellReuseIdentifier 호출:데이터 원본 에 cell 등록
[_tableView registerNib:[UINib nibWithNibName:@"CustomCell" bundle:nil] forCellReuseIdentifier:kCellIdentify];
3.table View:cellForRow AtIndexPath:에서 dequeue Reusable Cell With Identifier:forIndexPath:다시 사용 하 는 cell 을 가 져 옵 니 다.다시 사용 하 는 cell 이 없 으 면 제 공 된 nib 파일 을 자동 으로 사용 하여 cell 을 만 들 고 되 돌려 줍 니 다.(dequeue Reusable Cell With Identifier 를 사용 하면 되 돌아 오 는 것 이 비어 있 는 지 판단 해 야 합 니 다)
CustomCell*cell=[_tableView dequeueReusableCellWithIdentifier:kCellIdentify forIndexPath:indexPath];
4.cell 을 가 져 올 때 cell 을 다시 사용 할 수 없 으 면 새로운 cell 을 만 들 고 그 중의 awake FromNib 방법 을 호출 합 니 다.
2.NIB 를 사용 하지 않 음
1.사용자 정의 cell 의 initWithStyle:with ReuseableCellIdentifier:방법 으로 레이아웃 하기
2,등록 cell[tableView registerClass:[CustomCell class] forCellReuseIdentifier:kCellIdentify];
3.table View:cellForRow AtIndexPath:에서 dequeue Reusable Cell WithIdentifier:forIndexPath:다시 사용 하 는 cell 을 가 져 옵 니 다.다시 사용 하 는 cell 이 없 으 면 제 공 된 class 클래스 를 자동 으로 사용 하여 cell*cell=[tableView dequeue Reusable Cell WithIdentifier:kCellIdentify forIndexPath:indexPath]를 만 듭 니 다.
4.cell 을 가 져 올 때 다시 사용 할 cell 이 없 으 면 cell 의 initWith Style:with Reuseable CellIdentifier:방법 으로 새로운 cell 을 만 듭 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
(0069)iOS 개발 의 dequeue Reusable Cell With Identifier 의 두 가지 방법의 차이Cell 에 등록 한 적 이 있다 면 사용 가능 한 cell 이 없 을 때 전 자 는 nil 로 돌아 갑 니 다.후 자 는 항상 등 록 된 nib 나 class 에서 사용 가능 한 Cell 을 만 듭 니 다.즉,전 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.