iOS - UITableViewCell中的UILabel错误地截断文本

时间:2012-08-21 15:06:08

标签: ios cocoa-touch uitableview uilabel truncate

我有一个奇怪的问题:

我正在使用UIPickerView来挑选一些值。选择值时,我想使用pickerview中的该值更新UITableView中的行。所以我保存了对特定单元格的引用。

因此,当我在pickerview中选择一行时,我会在pickerview委托方法- didSelectRow...

中执行此操作
self.pickerviewCell.textLabel.text = [self.pickerViewDataSource objectAtIndex:row];

然后我用动画解雇了pickerview。但由于某些原因,在挑选视图离开屏幕之后,我看到行中的标签被更新为三个点...,这表示文本对于标签来说太长,然后在点消失之后一秒钟显示标签的全文。文本字符串不会太长,长度在3到5个字符之间,应完全适合UITableViewCell的textLabel。

任何人都有线索?

2 个答案:

答案 0 :(得分:1)

对我来说,问题是我的字符串以\n结尾。这适用于UITableViewCellStyleDefault,但是当更改为UITableViewCellStyleSubtitle时,字符串被截断(无论字符串有多长,最后三个字符都更改为...)。从字符串中删除\n修复它。

答案 1 :(得分:0)

经过一些试验和错误后找到了解决方案。

原来,由于单元格是UITableViewCell的自定义子类,我需要将实例变量引用到该自定义子类而不是UITableViewCell超类。

所以我所做的只是来自:

@property (nonatomic, strong) UITableViewCell *cell

@property (nonatomic, strong) MyCell *cell

它完美无缺。虽然很奇怪的行为。但它确实有效。

修改

其实我太快了。只是将类更改为我的子类,它不起作用。我反而注意到的是,如果在设置self.pickerviewCell.textLabel.text属性后我调用[self.pickerviewCell.textLabel sizeToFit]但奇怪的是,在我的应用程序中的另一个View Controller中,我可以执行上面的而不用需要在- sizeToFit上致电UILabel才能正常显示。