我是新手,也不熟悉编码。 我正在开发一个测验应用程序,这是代码行之一:
[questions addObject:@"When was the Declaration of Independence signed?"];
[answer addObject:@"1776"];
但是当我测试它时,问题太长了,所以它会使文本变得非常小,我怎样才能使它变成下一行呢?
答案 0 :(得分:2)
有几种选择。
最基本的是“硬编码”换行符,这不是最佳选择,但我会拼出来让你意识到差异:这包括通过添加将问题分成两行您想要换行符的问题中的“换行符”代码(\ 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的位置,也可以在Interface Builder中执行此操作。
如果这不起作用,可能无法正确设置其他内容 - 请检查UILabel的指标,以确保您没有以任何方式“锁定”其大小(其自动增长或自动生成的能力)根据其内容的大小缩小。)