我是新手,也是编码新手。我正在开发一个测验应用程序,这是其中的一行代码:
[questions addObject:@"When was the Declaration of Independence signed?"];
[answer addObject:@"1776"];
但是当我测试它时,问题太长了,所以它使文本变得特别小,我怎样才能让它一半下降到下一行?
有几个选择。
最基本的是“硬编码”换行符,这不是最好的选择,但我会拼写出来,以便您了解区别:这涉及通过添加“换行符”将问题分成两行" 代码 (\n) 在问题中您希望换行符开始的位置。例如:
[questions addObject:@"When was the Declaration\nof Independence signed?"];
这既不灵活也不自适应,无论您是使用 Interface Builder 来配置显示文本的对象(UILabel 或 UITextView 或其他类),文本的第二行都可能会消失,因为它低于可见区域集-创建 UILabel 或 UITextView 时启动。这种方法也违背了最佳实践,因为它混淆了数据的显示。您的数据没有任何问题。
更好的选择是仅使用显示文本的对象 - 无论如何您都需要这样做。我将在这里使用 UILabel 作为示例,但是 UILabel 和 UITextView 对象都具有您可以通过编程方式或在 Interface Builder 中设置的属性,这将有效地使它们不仅可以拉伸其显示区域而不是缩小您的文本,还可以包装您的文本根据显示区域的新大小,在最合乎逻辑的点。
以编程方式,首先确保您的 UILabel 对象的行数设置为 0:
textLabel.numberOfLines = 0;
如果您在界面构建器中创建了 UILabel,您也可以在其中执行此操作。
如果这不起作用,则可能是其他设置不正确 - 检查 UILabel 的指标以确保您没有以任何方式“锁定”它的大小(它的自动增长或自动收缩的能力基于其内容的大小)。