我在 Storyboard中创建了一个字体大小为 14 的 UITextView,并将其连接到我的 ViewController 的 detailDescriptionLabel 属性。这段代码在 viewDidLoad:
self.detailDescriptionLabel.font=[UIFont systemFontOfSize:10];
NSLog(@"text is %@; font is %@", self.detailDescriptionLabel.text, self.detailDescriptionLabel.font);
控制台输出如下:
text is Lorem Ipsum; font is (null)
为什么字体设置为零? setFont:正在工作;字体确实缩小了。我想得到字体,所以在一个手势之后我可以在字体上调用 lineHeight。这样,我可以通过以下代码找出哪一行被点击了:
int line = [tap locationInView:tap.view].y / self.detailDescriptionLabel.font.lineHeight;
这里的字体也是 nil。行设置为-2147483648,这显然不是我想要的。
最佳答案
尝试在 Interface Builder 中选中此 UITextView
的“可选”复选框。它在属性检查器中。根据下面@VahramDodoryan 的评论,如果您不想支持选择,则可以将 selectable
设置为 false。
我无法解释为什么会这样,但它可能是一个 UIKit 错误。我有一个 IBOutlet
到一个字体属性为 nil 的 UITextView
,它不会响应代码中的任何字体或文本颜色更改,直到 之后 其文本属性已设置。我通过反复试验得出了这个解决方案。
如果您在最新版本的 iOS 上仍然遇到此问题,请考虑打开雷达:
关于ios - UITextView 字体为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19471467/