Iphone 单元格未更新值,因为UISlider值已更改

Iphone 单元格未更新值,因为UISlider值已更改,iphone,objective-c,uitableview,uislider,Iphone,Objective C,Uitableview,Uislider,我有个问题快把我逼疯了。所有这些都是关于使用另一个UITableViewCell中的UISlider值实时更新UITableViewCell 问题 单元格已更新,但单元格中标签的大小似乎与表示的值的大小不匹配。我会尽量解释得更好 UISlider的最小值为-100,最大值为100。因此,第一次加载TableView时,cell.detailText.text显示0.0%,显示正常,但当我移动滑块且值更大时,例如55.5%,标签无法容纳此额外字符,并显示“55…” 这就是我如何创建包含de UIS

我有个问题快把我逼疯了。所有这些都是关于使用另一个UITableViewCell中的UISlider值实时更新UITableViewCell

问题 单元格已更新,但单元格中标签的大小似乎与表示的值的大小不匹配。我会尽量解释得更好

UISlider的最小值为-100,最大值为100。因此,第一次加载TableView时,cell.detailText.text显示0.0%,显示正常,但当我移动滑块且值更大时,例如55.5%,标签无法容纳此额外字符,并显示“55…”

这就是我如何创建包含de UISlider值的单元格的方法。请在cellForRowAtIndexPath委托方法中创建UISlider
以下是我在CellForRowatineXpath方法中创建de-UISlider的方法:
这就是我在sliderChanged方法中为了更新单元格所做的。
我怀疑解决方案是关于使用UITableView的reloadData方法,但不确定。我曾尝试在sliderChanged方法中插入一个
self.tableView.reloadData
,但我得到的结果是UISlider不移动,最后我得到了这个异常:
由于未捕获的异常“NSRangeException”而终止应用程序,原因:'-[NSCFArray objectAtIndex::]:索引(0)超出边界(0)'

提前感谢您的帮助

Javi

为什么在更新单元格值时使用
currencyStyleStringFromNumber:
?我认为使用与第一次将滑块的值放入单元格时相同的初始值设定项可以获得更好的结果,即:

cell.detailTextLabel.text = [NSString stringWithFormat:@"%.1f%%", slider.value];

您访问单元格的方式(通过标记)可能无法获得所需的单元格。您最初不是分配了标签1002吗?检查
celda
的值。然后,为了进行检查,将单元格标签的值设置为不太模糊的值。

问题是detailTextLabel宽度是固定的,只有在单元格中绘制标签时才会计算。 因此,当您使用“0.0%”初始化标签时,正好有4个字符的空间,并且您无法正确地可视化任何超过该值的内容;额外的字符要么用“…”修剪,要么标签什么也不显示

我通过强制标签在字符串开头包含额外的空格来解决这个问题,如下所示:

while ([string length] <= 4)
      string = [NSString stringWithFormat:@" %@",prestring];
cell.detailTextLabel.text = string;

while([字符串长度]Tim,这和我的代码完全一样。我打错了。我更新了问题的描述。感谢Nikolai教授,正如Tim指出的,我粘贴了其他类的代码。正如你在更正的版本中看到的,我正在使用标签1002访问单元格。因此,这应该是访问单元格的正确方式。
UITableViewCell *celda= (UITableViewCell *)[[self tableView] viewWithTag:1002];
celda.detailTextLabel.text = [NSString stringWithFormat:@"%.1f%%", slider.value];
cell.detailTextLabel.text = [NSString stringWithFormat:@"%.1f%%", slider.value];
while ([string length] <= 4)
      string = [NSString stringWithFormat:@" %@",prestring];
cell.detailTextLabel.text = string;