我有tableView
个自定义单元格,每个单元格都有UISlider
。
现在我想创建一个方法来获取UISliders
的值,但我不知道如何访问每个单元格及其滑块值。
提前致谢!
答案 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];
}
}
请注意,在此方法中,如果您使用重用标识符,则可能无法获得所需/需要的单元格。