从Cell中的UISlider获取价值

时间:2011-12-01 21:36:16

标签: iphone ios uitableview uislider

我有tableView个自定义单元格,每个单元格都有UISlider

现在我想创建一个方法来获取UISliders的值,但我不知道如何访问每个单元格及其滑块值。

提前致谢!

2 个答案:

答案 0 :(得分:6)

首先为每个滑块添加一个标签,这样您就不会选择哪个滑块:

slider.tag = 0 //Can be any unique integer

然后注册一个滑块更改方法:

[slider addTarget:self action:@selector(sliderUpdate:) forControlEvents:UIControlEventValueChanged];

最后在你的方法中

-(void)sliderUpdate:(UISlider *)sender {
    int value = sender.value;
    int tag = sender.tag;
}

标签现在与您之前使用的唯一整数相同。这是一种识别元素的方法。

答案 1 :(得分:0)

嗯,很少有可能:

1)保持对UITableViewController

中所有单元格的引用

tableView:cellForRowAtIndexPath:中,在返回单元格之前,将其添加到您在UITableViewController上作为属性的数组

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
      //Set up your cell

      [[self allCells] addObject:cell];
      return cell;
}

-(void)getSliderValues {
    for(CustomCell *cell in [self allCells]){
        //Here is your cell
        cell;
    }
}

2)使用tableView:cellForRowAtIndexPath:

-(void)getSliderValues {
    int section = 0;
    int numberOfCells = [self tableView:[self tableView] numberOfRowsInSection:section];

    for(int row = 0; row < numberOfCells; row++) {
        NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:section];

        //Here is your cell
        CustomCell *cell = [self tableView:[self tableView] cellForRowAtIndexPath:indexPath];
    }
}

请注意,在此方法中,如果您使用重用标识符,则可能无法获得所需/需要的单元格。