我有一個自定義的UITableViewCell,裏面有一個UIPickerView。爲了解決這個問題,我創建了一個Subclass,實現了UIPickerView委託和數據源方法。當我的cellForRowAtIndexPath實現這樣的:自定義UITableViewCell中的UIPickerView
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.section==2) {
PickerCellTableViewCell *cell2=[tableView dequeueReusableCellWithIdentifier:@"pickerCell" forIndexPath:indexPath];
cell2.cellPickerInputArray=self.pickerArray;
return cell2;
}else{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"normalCell" forIndexPath:indexPath];
cell.textLabel.text=[[self.inputArray objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
return cell;
}
}
於子類.m文件我有以下幾點:
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return [self.cellPickerInputArray count];
}
我有以下問題:如果我離開它這樣,它崩潰和控制檯,我:
無效更新:在部分0的行的無效數的包含在更新後的現有部分 行數(7)必須 等於 更新(0)之前在該部分中包含的行數,加上或減去從 插入或刪除的行數(0插入,0刪除)和正數或負數移動 行進入或退出該部分(0移入,0移出)。'
但是,如果我改變numberOfRowsInComponent:返回(在這個例子中7)的實際行數,一切工作就不錯了。
我一直在嘗試,但我沒有看到發現問題/解決方案。任何幫助,將不勝感激。提前致謝!
編輯!正如@meda I推斷的那樣,NSLoged NSLog(@"PickerInputArray count"%@",[self.cellPickerInputArray
count]);該方法pickerView numberOfRowsInComponent
這裏內部:
2014-03-30 21:04:54.756 TestPickerOnTable[3498:60b] PickerInputArray count0
2014-03-30 21:04:54.757 TestPickerOnTable[3498:60b] PickerInputArray count0
2014-03-30 21:04:54.758 TestPickerOnTable[3498:60b] PickerInputArray count0
2014-03-30 21:04:54.758 TestPickerOnTable[3498:60b] PickerInputArray count0
2014-03-30 21:04:54.762 TestPickerOnTable[3498:60b] PickerInputArray count7
2014-03-30 21:04:54.765 TestPickerOnTable[3498:60b] PickerInputArray count7
2014-03-30 21:04:54.767 TestPickerOnTable[3498:60b] PickerInputArray count7
2014-03-30 21:04:54.770 TestPickerOnTable[3498:60b] PickerInputArray count7
2014-03-30 21:04:54.771 TestPickerOnTable[3498:60b] PickerInputArray count7
2014-03-30 21:04:54.771 TestPickerOnTable[3498:60b] PickerInputArray count7
日誌吧'的NSLog(@ 「PickerInputArray計數」 %@」,[self.cellPickerInputArray計數]);'如果不是等於7您需要找出爲什麼 – meda
是的,已經嘗試過了。請參閱上面的編輯。 – Marcal