Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
界面生成器中的iOS多行标签_Ios_Objective C_Swift_Uilabel_Line Breaks - Fatal编程技术网

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

界面生成器中的iOS多行标签,ios,objective-c,swift,uilabel,line-breaks,Ios,Objective C,Swift,Uilabel,Line Breaks,如何在iOS界面生成器中创建多行UILabel?我尝试了UITextView,但它不太适合我的需要 如何在标签中添加多行(文本)?根据需要设置标签的宽度,然后使用IB将换行设置为换行 或者与这样的代码一起使用 我找到了解决办法 只需添加以下代码: textLabel.lineBreakMode = NSLineBreakByWordWrapping; textLabel.numberOfLines = 0; 您可以使用numberOfLines属性,该属性定义标签可以具有的最大行数。默认情况下

如何在iOS界面生成器中创建多行
UILabel
?我尝试了
UITextView
,但它不太适合我的需要


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

根据需要设置标签的宽度,然后使用IB将换行设置为换行

或者与这样的代码一起使用

我找到了解决办法

只需添加以下代码:

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

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

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

textlab.numberOfLines=5//例如
或在界面生成器中:

谢谢AppleVijay

还要调用sizeToFit,如下所示:

label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit];
高度将自动计算。

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

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

对于X-code 7.2
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};
  • --选择UILabel

  • --属性检查器

  • --文本-选择属性化

  • 在此之后,您可以看到更多可以添加到标签中的属性,其中还可以找到行数。使您的标签成为多行的


    将动态文本信息的行数设置为零,这在文本变化时非常有用

    编程(Swift 3)


    使用Inetrface Builder


    注意:不需要设置
    最小字体比例
    ,但最好有一个最小比例因子来将文本放入标签框架。

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

    在带有普通UILabels的IB中,行数可见
    将lines字段设置为0。它将根据标签提供的空间创建多行。

    我已经为此奋斗了很长时间。 我只是希望我的标签文本出现在第二行。但无论我做什么,它都会溢出UILabel框。对我来说,在尺寸检查器中更改自动调整大小是可行的。简单的修复



    可能有人会发现寻找类似产品很有帮助。

    你能解释一下为什么id不能满足你的需要吗?只读的文本视图与多行标签相同。似乎没有突出显示的文本颜色属性。对于访问此问题的其他人,请不要按照公认的答案将行设置为5或
    n
    。相反,将其设置为0(有点无限)。检查下面vijay的答案。我试过了,当我写标签时,它可以工作,但当我按enter键接受它时,所有内容都在一行上。你的标签的
    宽度是多少?好的,我现在知道了,增加了高度,成功了。谢谢您可以将行数设置为0以获得无限行数。另请参阅此答案,该答案解释了如何在IB中键入多行标签:注意:UILineBreakModeWordWrap在iOS6中已被弃用。使用[label setLineBreakMode:NSLineBreakWordWrapping];相反,遗漏了“By”。label.lineBreakMode=nslinebreakbywordwrappingse NSLineBreakMode.ByWordWrapping而不是uilinebreakmode谢谢,这就是我试图做的:)这应该是解决方案!不错。但是“Q”不是我必须的guess@Oliver逻辑它不会退出Xcode。。。你没有读对。他说CONTROL+Q+ENTER(而不是CMD+Q)。。但Rendel是对的,这里只有CONTROL+ENTER足够。@逻辑它不会退出Xcode。。。你没有读对。他说CONTROL+Q+ENTER(而不是CMD+Q)。。但是Rendel是对的,只有CONTROL+ENTER在这里就足够了。使用纯UILabels时,IB中的行数是可见的。如何根据其中的文本使标签高度可变?@Renanace-“Autoshrink”下拉列表中有另一个值-Miminum font size,这可能会解决您的问题。
    
    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