界面生成器中的 iOS 多行标签

发布于 2024-11-18 05:01:44 字数 111 浏览 2 评论 0原文

如何在 iOS 界面生成器中制作多行 UILabel?我尝试了 UITextView 但它不太适合我的需求。

如何在标签中添加多行(文本)?

How can I make a multiline UILabel in interface builder for iOS? I tried the UITextView but it didn't quite suit my needs.

How can I add multiline (text) in label?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

一个人的旅程 2024-11-25 05:01:44

您可以使用numberOfLines属性来定义标签可以拥有的最大行数。默认情况下,它是 1。将其设置为0意味着标签将具有无限行

您可以在代码中执行此操作:

textLabel.numberOfLines = 5 // for example

或者在 Interface Builder 中:

You can use numberOfLines property which defines maximum number of lines a label can have. By default, it's 1. Setting it to 0 means the label will have unlimited lines.

You can do it in code:

textLabel.numberOfLines = 5 // for example

Or in Interface Builder:

筑梦 2024-11-25 05:01:44

点击 Control+Enter 在 Interface Builder/Storyboard 的 UILabel 中添加一行。

Hit Control+Enter to add a line in UILabel in Interface Builder/Storyboard.

染墨丶若流云 2024-11-25 05:01:44

谢谢苹果维杰!

还要调用 sizeToFit,如下所示:

label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit];

将自动计算高度。

Thanks AppleVijay!

Also to call sizeToFit, like this:

label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit];

The height will be automatically computed.

别再吹冷风 2024-11-25 05:01:44

将标签宽度设置为您需要的小,然后使用 IB 将换行符设置为自动换行

或与这样的代码一起使用

我找到了解决方案。

只需添加以下代码:

textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;

set width of label as u needed small then use IB to set line breaks to word wrap

or use with code like this

I found a solution.

One just has to add the following code:

textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;
苏辞 2024-11-25 05:01:44

将动态文本信息的行数设置为零,当文本变化时这将很有用。

以编程方式 (Swift 3)

var label = UILabel()
let stringValue = "iOS\nmultiline\nlabel\nin\nInterface\nbuilder"
label.text = stringValue
label.numberOfLines = 0 // Set 0, if number of lines not specified.
label.lineBreakMode = .byTruncatingTail // or .byWrappingWord
label.minimumScaleFactor = 0.8 . // It is not required but nice to have a minimum scale factor to fit text into label frame

使用 Inetrface Builder

在此处输入图像描述

注意:不需要设置最小字体比例,但最好有一个最小比例因子以使文本适合标签框架。

Set number of lines zero for dynamic text information, it will be useful when your text are varying.

Programatically (Swift 3)

var label = UILabel()
let stringValue = "iOS\nmultiline\nlabel\nin\nInterface\nbuilder"
label.text = stringValue
label.numberOfLines = 0 // Set 0, if number of lines not specified.
label.lineBreakMode = .byTruncatingTail // or .byWrappingWord
label.minimumScaleFactor = 0.8 . // It is not required but nice to have a minimum scale factor to fit text into label frame

Using Inetrface Builder

enter image description here

Note: It is not required to set Minimum Font Scale, but nice to have a minimum scale factor to fit text into label frame.

呆橘 2024-11-25 05:01:44

使用普通 UILabels 在 IB 中可以看到行数
将lines字段设置为0。它将根据为标签提供的空间创建多行。

Number of lines is visible in IB with Plain UILabels
set lines field as 0 . It will create multiple lines as per the provided space to the label.

甜是你 2024-11-25 05:01:44

在 iOS7 (Xcode5) 中,您需要将 UILabel 的行设置为 0 以便在 Storyboard 中无限多个输入。
最重要的是设置 UILabel 的高度可以容纳您要设置的输入行。

In iOS7 (Xcode5) you shold set the lines of UILabel to 0 for unlimited multiple input in storyboard.
The most important is to set the height of the UILabel can hold the lines of input you are going to set.

流年已逝 2024-11-25 05:01:44
textLabel.lineBreakMode = UILineBreakModeWordWrap;

textLabel.numberOfLines = 0;

CGSize size =  [[[arrNewsFeed objectAtIndex:row] objectForKey:@"c"]  sizeWithFont:[UIFont systemFontOfSize:14.0]  constrainedToSize:CGSizeMake(188, CGFLOAT_MAX)
                                                                     lineBreakMode:NSLineBreakByTruncatingTail];

textLabel.frame = (CGRect){.origin = cell.lblNewsDescription.frame.origin, .size = size};
textLabel.lineBreakMode = UILineBreakModeWordWrap;

textLabel.numberOfLines = 0;

CGSize size =  [[[arrNewsFeed objectAtIndex:row] objectForKey:@"c"]  sizeWithFont:[UIFont systemFontOfSize:14.0]  constrainedToSize:CGSizeMake(188, CGFLOAT_MAX)
                                                                     lineBreakMode:NSLineBreakByTruncatingTail];

textLabel.frame = (CGRect){.origin = cell.lblNewsDescription.frame.origin, .size = size};
荒岛晴空 2024-11-25 05:01:44

如果将 numberOfLines 属性设置为 0,标签将自动调整为给定文本所需的行数。

If you set the numberOfLines property equal to 0, the label will automatically adjust to the required number of lines of the given text.

尹雨沫 2024-11-25 05:01:44

我已经为此苦苦挣扎了很长一段时间。
我只是想让我的标签文本出现在第二行。但无论我做什么,它都会溢出 UILabel 框。对我来说,改变尺寸检查器中的自动调整大小是有效的。简单修复。

可能有人会发现它对正在寻找类似东西的人很有帮助。

I had been struggling with this for a long time.
I just wanted my label text to appear on the second line. But whatever I do, it would just overflow the UILabel box. For me, changing the autoresizing in size inspector worked. Simple fix.

May be someone might find it helpful who is looking for something similar.

匿名。 2024-11-25 05:01:44

对于 X-Code 7.2

  1. -- 选择 UILabel

  2. -- 属性检查器

  3. -- 文本 - 选择属性

此后您可以看到更多可以添加到标签中的属性,您还可以在其中找到的数量。这使得您的标签多行

X-多行 UILabel 的代码图像

For X-Code 7.2

  1. -- Select UILabel

  2. -- Attributes inspector

  3. -- Text - Select Attributed

After this you can see some more attribute you can add into you label, in which you can also find number of Lines. Which make your label multiline.

X-Code Image for a multiline UILabel

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文