[英]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.