我有一个静态UITableView
,我通过cellForRowAtIndexPath
方法填充NSDictionary。
NSString *key = [sectionKeys objectAtIndex:[indexPath section]];
NSArray *contents = [sectionContents objectForKey:key];
NSString *contentForThisRow = [contents objectAtIndex:[indexPath row]];
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
[[cell textLabel] setText:contentForThisRow];
认为运行良好,我还需要向tableviewcells添加控件,每个单元格都有不同的控件。当我以编程方式将UITextField添加到cell1时,运行后的视图很好,直到5个部分,但是当我向下滚动我的tableview时,第6节的单元格也获得了一个UITextField控件。 UIDatePicker也是如此,我的tableview的前5个部分都没问题,但在滚动tableview时,最后两个部分也获得了UIDatePicker控件。
注意:我在表视图中有九个部分,每个部分都有一个单元格,前两个部分包含两个单元格。
答案 0 :(得分:4)
我的理解:
细胞的布局变得混乱,一个细胞的控制转到另一个细胞。
我建议:
这是一个常见的问题,我前一段时间遇到过这种问题,而且非常令人沮丧。经过几个小时的谷歌搜索后,我找到了一个解决方案:对具有不同控件的单元格使用不同的单元格标识符。
示例:
5个细胞:2个细胞只有一个UITextField,1个细胞带有UITextField和一个UILabel,2个细胞带有UIImageView。使用3个不同的小区标识符1表示仅包含UITextField的单元格,1表示具有UIImageView的单元格,1表示具有UITextField和UILabel的单元格。
希望它有所帮助。