알았어. 나는 objective-c, cocoa, xcode 및 blah blah 등등에 대한 이해의 한계에 맞서야한다는 것을 알고있다. 하지만 여기에 내가 뭘하려고하는지 :UITableView 사용자 정의 셀 재설정 셀 내용
나는 viewcontroller에 tableview 있습니다. tableview의 delegate는 viewcontroller입니다. Viewcontroller에는 tableview에 대한 콘센트가 있습니다. 테이블은 사용자 정의 셀 (IB xib 포함)과 xml 파일의 데이터를 사용하여 결합됩니다. 사용자 정의 셀에는 두 개의 버튼이 있습니다. 셀이 생성되면 버튼 작업이 addTarget으로 self (viewcontroller)에 추가 된 다음 작업으로 이동합니다. viewcontroller 버튼 액션 메소드는 테이블에서 누른 버튼의 행을 가져 와서 셀의 텍스트와 버튼의 제목을 변경합니다.
물론 뷰에서 특정 셀을 스크롤하여 다시 볼 때 시작 상태로 재설정되었습니다. 나는 이것이 셀 dequeueing 등 모든 아이디어와 관련이 있다고 가정?
정의 셀 :
여기에 관련 비트와 코드의 버튼과 textLabel라는에 매장이있다.
1. 방식이있다 :
셀은
NSIndexPath *thisCellPath = [NSIndexPath indexPathForRow:[sender tag] inSection:0];
dialogue_cell *thisCell = (dialogue_cell *)[self.dialogueTable cellForRowAtIndexPath:thisCellPath];
NSString *row = [NSString stringWithFormat:@"%i",[sender tag]];
if ([thisCell.languageButton.currentTitle isEqualToString:@"en"]) {
[thisCell.languageButton setTitle:@"zc" forState:UIControlStateNormal];
thisCell.mainText.text = [[self.lineArray objectForKey:row] valueForKey:@"lineText_zc"];
} else {
[thisCell.languageButton setTitle:@"en" forState:UIControlStateNormal];
thisCell.mainText.text = [[self.lineArray objectForKey:row] valueForKey:@"lineText_en"];
}
그래서 두 가지 질문이 ... 데이터 소스의 cellForRowAtIndexPath에 {
static NSString *dialogueCellIdentifier = @"dialogueCellIdentifier";
dialogue_cell *cell = (dialogue_cell *)[tableView dequeueReusableCellWithIdentifier:dialogueCellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"dialogue_cell" owner:self options:nil];
cell = [nib objectAtIndex:0];
[[cell lButton] addTarget:self action:@selector(lButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
}
[[cell lButton] setTag:[indexPath row]];
NSString *row = [NSString stringWithFormat:@"%i",[indexPath row]];
NSString *en = [[self.dataArray objectForKey:row] valueForKey:@"en"];
cell.mainText.text = en;
return cell;
}
과 lButton 방법을 ... 코드를 만들 화면이 스크롤 되어도 레이블 및 단추 이름에있는 셀을 유지하게 하시겠습니까?
2. 거기에 단추가있는 viewcontroller 단추 동작을 보내는 대신 셀 사용자 지정 클래스 내에서 레이블 및 단추 이름을 설정하는 방법은 무엇입니까?
감사합니다.
도움을 주셔서 감사합니다. 실제로 실제로 lostInTransit이 말한 것과 비슷한 방식으로 구성했습니다. 그 문제를 해결하는 그 느낌을 전혀 좋아하지 않는 것! –