2012-03-14 139 views
0

我有一个静态的UITableView,我通过cellForRowAtIndexPath方法将其填充到NSDictionary中。以静态方式在UITableViewCell中以编程方式添加控件UITableView

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控件。

注:我有9个表格视图中的每个部分都有一个单元格,但前两个部分包含两个单元格。

回答

4

我的理解:

你的细胞的布局得到搞砸了,并从一个细胞对照去另一个。

我的建议:

这是一个普遍的问题,我刚才面对它,这是非常令人沮丧。经过几个小时的搜索后,我发现了一个解决方案:为不同控件的单元格使用不同的单元格标识符。

实施例:

5个细胞:2个细胞仅具有的UITextField,1个细胞与的UITextField和一个UILabel和2个细胞的UIImageView。使用3个不同的小区标识符1为只有UITextField的单元格,1为具有UIImageView的单元格,1为具有UITextField和UILabel的单元格。

希望它有帮助。

+0

我正在动态创建单元格,然后如何为它们分配标识符,分配标识符和创建控件都发生在cellForRowAtIndexPath中? – Firdous 2012-03-14 07:56:36

+1

是的,只需将'CellIdentifier'的值改为任何你需要的 – Novarg 2012-03-14 07:58:02

+0

像猎豹一样工作:)谢谢 – Firdous 2012-03-14 08:04:34

相关问题