我有一个奇怪的问题:
我正在使用UIPickerView
来挑选一些值。选择值时,我想使用pickerview中的该值更新UITableView
中的行。所以我保存了对特定单元格的引用。
因此,当我在pickerview中选择一行时,我会在pickerview委托方法- didSelectRow...
self.pickerviewCell.textLabel.text = [self.pickerViewDataSource objectAtIndex:row];
然后我用动画解雇了pickerview。但由于某些原因,在挑选视图离开屏幕之后,我看到行中的标签被更新为三个点...
,这表示文本对于标签来说太长,然后在点消失之后一秒钟显示标签的全文。文本字符串不会太长,长度在3到5个字符之间,应完全适合UITableViewCell
的textLabel。
任何人都有线索?
答案 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
才能正常显示。