我有一个UILabel的子类,它应该在用户输入内容时更新其文本 . 当然,随着文本长度的增加,标签的大小必须调整以适应文本 . 我调用了sizeToFit方法,当标签正确调整其宽度时,文本的底部被切断 . 问题是文本包含下标和上标,并且标签没有考虑下标来调整自身(例如,使用H 2O,两者的底部被截断) .
我可以覆盖sizeToFit或sizeThatFits:来增加标签的高度吗?
编辑:
- (void) addCompound {
self.currentLabel = [[FormulaLabel alloc] initWithFrame:CGRectMake(10, 10, 100, 50)];
[self addSubview:self.currentLabel];
[self.currentLabel sizeToFit];
// Right now self.currentlabel.text = "". However, I've confirmed thru NSLogging that letters are added to self.currentLabel.text as the user types on the keyboard. Also, the text displays properly (as long as it's within the original frame) when I remove [sel.currentLabel sizeToFit]
}
2 回答
您应该覆盖子类中的UILabel方法(CGSize)sizeThatFits:(CGSize)大小,如下例所示 . 我只需将10pt加到UILabel计算的高度以容纳下标 .
样本输出:
来自NSLog:
这应该是诀窍: