繁体   English   中英

在静态UITableView的UITableViewCell中以编程方式添加控件

[英]Adding controls programmatically in UITableViewCell in static UITableView

我有一个静态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个部分,但是当我向下滚动表格视图时,第6部分的单元格也将获得UITextField控件。 UIDatePicker发生的情况也一样,我的表视图的前5个部分都很好,但是在滚动表视图时,后两个部分也获得了UIDatePicker控件。

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

我的理解:

单元格的布局变得混乱,一个单元格的控件转到另一单元格。

我的建议:

这是一个普遍的问题,我前一段时间遇到过,这非常令人沮丧。 搜寻了几个小时后,我找到了解决方案:对具有不同控件的单元格使用不同的单元格标识符。

例:

5个单元格:2个仅具有UITextField的单元格,1个具有UITextField和UILabel的单元格,以及2个具有UIImageView的单元格。 使用3个不同的单元格标识符。 1表示仅包含UITextField的单元格,1表示具有UIImageView的单元格,1表示具有UITextField和UILabel的单元格。

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM