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



我有一个奇怪的问题:

我使用UIPickerView来选择一些值。当选取一个值时,我想用pickerview中的值更新UITableView中的一行。因此,我保存了对特定单元格的引用。

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

self.pickerviewCell.textLabel.text = [self.pickerViewDataSource objectAtIndex:row];

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

有人知道线索吗?

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

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

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

所以我所做的就是从

@property (nonatomic, strong) UITableViewCell *cell

@property (nonatomic, strong) MyCell *cell

结果完美无瑕。不过行为很奇怪。但它是有效的。

编辑:

事实上我跑得太快了。仅仅将类更改为我的子类是不起作用的。相反,我注意到的是,如果在设置了self.pickerviewCell.textLabel.text属性后,我调用[self.pickerviewCell.textLabel sizeToFit],但奇怪的是,在我的应用程序中的另一个视图控制器中,我可以执行上述操作,而不需要在UILabel上调用- sizeToFit以使其正确显示。

相关内容

  • 没有找到相关文章

最新更新