올바른 방법을 믿는 방법은 다음과 같습니다. 테스트 한 결과 Ipad 및 Iphone에서 작동합니다. uitableviewcell을 분류하여 자체 customCell을 작성해야합니다.
interfaceBuilder에서 시작하십시오 ... 새로운 UIViewcontroller를 작성하십시오 .customCell (xib 자원 봉사자) customCell이 uitableviewcell의 서브 클래스인지 확인하십시오
지금 모든보기를 지우고 하나의보기를 작성하여 개별 셀의 크기로 만드십시오. 해당 뷰를 서브 클래스 customcell로 만드십시오. 이제 두 개의 다른 뷰를 만듭니다 (첫 번째 뷰를 복제 함).
연결 관리자로 이동하여 지금이보기에 연결할 수있는 2 개의 IBOutlet을 찾으십시오.
-backgroundView-선택된 배경
이것들을 방금 복제 한 마지막 두 개의 뷰에 연결하고 걱정하지 마십시오. customCell을 확장하는 첫 번째 뷰는 레이블과 UITextField를 그 안에 넣습니다. customCell.h에 들어가서 레이블과 텍스트 필드를 연결하십시오. 이 뷰의 높이를 75 (각 셀의 높이)로 설정하십시오.
customCell.m 파일에서 생성자가 다음과 같은지 확인하십시오.
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
NSArray *nibArray = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
self = [nibArray objectAtIndex:0];
}
return self;
}
이제 UITableViewcontroller를 만들고이 메소드에서 다음과 같이 customCell 클래스를 사용하십시오.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
// lets use our customCell which has a label and textfield already installed for us
customCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
//cell = [[[customCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
NSArray *topLevelsObjects = [[NSBundle mainBundle] loadNibNamed:@"NewUserCustomCell" owner:nil options:nil];
for (id currentObject in topLevelsObjects){
if ([currentObject isKindOfClass:[UITableViewCell class]]){
cell = (customCell *) currentObject;
break;
}
}
NSUInteger row = [indexPath row];
switch (row) {
case 0:
{
cell.titleLabel.text = @"First Name"; //label we made (uitextfield also available now)
break;
}
}
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 75.0;
}