1

我创建了一个带有 UISegmentedControl 的自定义单元格,并像这样加载了单元格,

static NSString *CellIdentifier = @"Cell";

SegmentedCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) 
{
    NSArray *cells =[[NSBundle mainBundle] loadNibNamed:@"SegmentedCell" owner:nil options:nil];

    for (UIView *view in cells) 
    {
        if([view isKindOfClass:[UITableViewCell class]])
        {
            cell = (SegmentedCell *)view;
            [cell.SegmentedControl addTarget:self
                                                  action:@selector(segmentedControlChanged:)
                                        forControlEvents:UIControlEventValueChanged];        


        }
    }
}

cell.textLabel.text = @"Sample";
cell.selectionStyle = UITableViewCellSelectionStyleNone;

自定义单元格成功加载,我得到了 SegmentedControl 的操作。但是当我滚动表格视图时,SegmentedControl 的状态发生了变化。

4

1 回答 1

1

当您滚动使用 dequeueReusableCellWithIdentifier 的 tableview 时,您实际上并没有保存所有不同的单元格。要解决您的问题,您需要执行一些操作。

  • 将分段控件设置为每次按下时将其值存储到变量中。
  • 将此值放入数组
  • 在 cellForRowAtIndexPath 方法中,从数组中取出变量并将分段控件的值设置为该变量的值。
于 2012-07-03T14:49:53.873 回答