如何动态编写UITableview detailtextLabel值?

时间:2014-04-23 14:55:26

标签: ios uitableview uislider

我想要UISlider值的代码更改那个时候也UItableview detailTextLabel值也会改变?见下图。

enter image description here

当我更改滑块值时动态更改Alert Range的detailTextLabel? 当我回来时,我还会存储这个UIview,它也代表了slider和detailTextLabel的旧值。

 UISlider *slider = [[UISlider alloc]initWithFrame:CGRectMake(45, 45, 290,20)];
    if(indexPath.row == 0)
    {
        NSString *sliderValue =[NSString stringWithFormat:@"%d KM",(int)[_defaults floatForKey:@"Slider"]];
        cell.detailTextLabel.text = sliderValue;
    }
    if(indexPath.row == 1)
    {

        slider.minimumValue = 5;
        slider.maximumValue = 20;
        slider.value =(int)[_defaults floatForKey:@"Slider"];
        cell.accessoryView = slider;

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

}
cell.textLabel.backgroundColor = [UIColor clearColor];
//[_table reloadData];
return cell; }

-(void)sliderValueChanged:(id)sender
 {
UISlider *slider = sender;
[_defaults setFloat:slider.value forKey:@"Slider"];
//[_table reloadData];
 }

提前致谢...

2 个答案:

答案 0 :(得分:2)

每次滑块移动时调用[self.tableView reloadData];。 确保您想要动态的值是属性,并由滑块设置。

如果您不想重新加载整个tableView,您还可以使用此功能重新加载单元格:

- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

查看此问题以获取有关reloadRowsAtIndexPaths的更多帮助:Reload specific UITableView cell in iOS

答案 1 :(得分:0)

您应该addTarget使用UISlider。每次调用events时,您都可以更改数据模型中的值,并reloadTable显示更改后的值。

Have a look at this example