现在,我是IOS编程的初学者,我创建了一个视图并在其中放置了一个tableview,然后使用要用于表格单元的模板创建了一个xib,并为该调用创建了一个类。 表格单元格具有标签(在单元格加载时设置),开关和文本字段。

该表加载正常,标签显示了应显示的正确文本,从数据库加载了12行。 SQLite的。

问题:当我编辑第1行中的文本字段时,第9行中的文本字段被编辑,反之亦然。 当我在第2行进行编辑时,第10行将被编辑! 直到行4,12不仅是文本字段,而且还可以切换开关。

一些代码:AlertViewController.h

@property (weak, nonatomic) IBOutlet UITableView *table;

AlertViewController.m

@synthesize table;

static NSString *alertCellID=@"AlertViewCell";

----some code here ----
-(void)ViewDidLoad
{
---some code here----
    self.table.delegate=self;
    self.table.dataSource=self;

    if(managedObjectContext==nil)
    {
        id appDelegate=(id)[[UIApplication sharedApplication] delegate];
        managedObjectContext=[appDelegate managedObjectContext];
    }
    [self loadCategories];

    [table registerNib:[UINib nibWithNibName:@"AlertViewCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:alertCellID];
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [arrCategories count];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    Category *cat=[arrCategories objectAtIndex:indexPath.row];
    AlertViewCell *cell = [tableView dequeueReusableCellWithIdentifier:alertCellID];
    UILabel *lblGroupName=(UILabel *)[cell viewWithTag:101];
    lblGroupName.text=cat.nameEn;
    UITextField *txtHours=(UITextField *)[cell viewWithTag:103];
    txtHours.delegate=self;
    return cell;
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

编辑:我不知道它与适合8个记录的滚动大小有关吗? 以及如何克服呢?

===============>>#1 票数:1 已采纳

好吧,我解决了如下问题:

首先,问题是因为im使用dequeuereusablecellwithidentifier,它似乎每x行数返回相同的引用,其中x是不滚动显示在屏幕上的行数,因此这使单元格1 =单元格9,单元格2 =单元格10等等。

因此,要解决此问题,我必须使标识符唯一,并解决标识符用于加载已注册笔尖的问题,我必须使用此唯一标识符名称来注册笔尖。.这是更改:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *identifier=[NSString stringWithFormat:@"%@%d",alertCellID,indexPath.row];
    [table registerNib:[UINib nibWithNibName:@"AlertViewCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:identifier];
    Category *cat=[arrCategories objectAtIndex:indexPath.row];

    AlertViewCell *cell = (AlertViewCell *)[tableView dequeueReusableCellWithIdentifier:identifier forIndexPath:indexPath];
    if(!cell)
    {
        NSArray *topLevelObjects=[[NSBundle mainBundle] loadNibNamed:@"AlertViewCell" owner:self options:nil];
        cell=[topLevelObjects objectAtIndex:0];
    }
    UILabel *lblGroupName=(UILabel *)[cell viewWithTag:101];
    lblGroupName.text=cat.nameEn;
    UITextField *txtHours=(UITextField *)[cell viewWithTag:103];
    txtHours.delegate=self;
    return cell;
}

  ask by Kensoftware translate from so

未解决问题?本站智能推荐:

2回复

选择一个UITableViewCell滚动后选择另一个单元格

尽管这是一个常见的问题,但我没有解决该问题的方法。 我提到了当您向上或向下滚动时,选择一个UITableViewCell会选择同一位置的其他单元格,但我不明白。 我有allMumbaiArray (在cellForRowAtIndexPath中使用)和tableview alllMu
3回复

选择单元格后如何更改UITableViewCell图像?

问题总结起来-我试图让有人单击UITableViewCell时选中一个框,这涉及更改单元格中的图像。 该表设置良好,工作正常-它正在显示我想要的信息,并且单元格按应有的方式进行选择。 但是,当调用didSelectRowAtIndexPath方法时,我无法更改图像。 到目前为止,这就是
4回复

自定义UITableViewCell仅绘制一个单元格

我想显示自定义单元格,但是我的代码一次只显示一个自定义表单元格。我在做什么错? 我在UIView内的UITableView中设置了一个UIViewController笔尖。 笔尖中还有一个UITableViewCell,其类是CustomCell(UITableViewCell的子类)。
4回复

UITableViewCell-仅第一个单元格没有节头

是否可以仅隐藏/删除第一个tableviewHeader? 基本上,我想显示一个将被设计为商品的自定义单元格-我不希望它具有标题-我可以将此逻辑添加到我的heightForHeaderInSection方法中吗?
4回复

在每个单元格上显示JSON值后,在最后一个单元格中的UITableViewCell中动态添加两个Button

我需要一个iPhone应用程序,在该应用程序中,我正在处理JSON字符串,将其转换为对象,然后将该对象的值显示到UITableView每个单元格。 JSON字符串可能会有所不同,因此不会。 的细胞都可以变化。 我的要求是在显示JSON值后,在接下来的两个单元格中显示两个按钮“接受”和“
2回复

删除最后一个单元格后未选择UITableView单元格

我将UITableView分为三个部分:三个部分中的两个是常数(每个常数只有一个不变的单元格),第一部分是您可以在单元格中添加或删除的部分。 除了从该部分删除单元格外,其他所有功能都可以正常运行:一旦删除了最后一个单元格,此单元格便消失了(如预期的那样),但其他部分则无法正常工作,这意味着我无
1回复

修改CellForRowAtIndexPath中的一个单元格会更改多个单元格

我有一个要通过tableview显示的名称数组。 您最多可以选择3个名称,并且不能重新选择相同的名称。 为此,我在cellForRowAtIndexPath:实现了以下代码cellForRowAtIndexPath: 当我运行代码时,名称很好,但是有多个红色单元格的名称没有被我选择。
1回复

我必须对不可编辑的单元格使用-[UITableViewCell contentView]吗?

我正在构建类似于本机iPhone Mail应用程序的撰写页面的内容。 但是,我将两个文本字段放在一行上,我想用垂直分隔线(另一个视图)将它们分隔开,该分隔线的颜色和重量与水平单元格分隔符相同。 苹果的文档说: 如果要通过简单地添加其他视图来自定义单元格,则应将其添加到内容视
2回复

UITableViewCell在点击时编辑单元格内容

我有一个关于UITAbleViewCell的问题。 我已经实现了UITableViewDelegate方法 点击所需的单元格后,没有任何反应...... 为什么它不像我预期的那样工作? 另外,我该怎么做才能使它工作?
2回复

从另一个视图控制器添加单元格时,UITableViewCell的内容不可见

我遇到一个奇怪的问题,即将UITableViewCell添加到当前不可见但先前已加载的另一个TableViewController的tableView中。 问题是该单元格已添加到tableView中,但是一旦我转到该视图控制器,该单元格的内容将为空白: 这是添加单元格的方式: