我有一个tableview,其中第2部分和第3行有一个uislider,并且在同一个地方有一个标签,我需要在更改uislider时更改uilabel的值。我给了uislider的方法,比如
[slider addTarget:self action:@selector(sliderAction:)forControlEvents:UIControlEventValueChanged];
我为uislider提供了
-(void)sliderAction:(UISlider*)sender;
{
NSLog(@"%f",[sender value]);
MlifetimeLabel.text=[NSString stringWithFormat:@"%f",[sender value]];
[self.tableView reloadData];
}
在nslog中的我得到了一连串的价值观,但在标签中......事情没有得到正确的刷新........帮助
答案 0 :(得分:1)
您不需要重新加载整个表,因为您知道要更改的单元格的行和部分只需在选择器方法中尝试此代码。
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:3 inSection:2]]
withRowAnimation:UITableViewRowAnimationNone];
我假设您正在计算0和1之间的行和部分而不是1,否则使用
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:2 inSection:1]]
答案 1 :(得分:1)
您需要更新主线程上的标签。 尝试像
这样的东西NSString * str = [NSString stringWithFormat:@“%f”,[发送者值]];
[MlifetimeLabel performSelectorOnMainThread:@ selector(setText :) withObject:str waitUntilDone:YES];