首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果内容不适合视图的第一行,则为第二行的UILabel

如果内容不适合视图的第一行,则为第二行的UILabel
EN

Stack Overflow用户
提问于 2017-02-21 12:17:01
回答 3查看 1.6K关注 0票数 0

最好的方式来描述我的情况是用图像。我所拥有的是一个包含多个UILabelUIImage的视图。红色框是一个UILabel,如果内容太大,它应该转到第二行。

从故事板,我有一个工作的情况,当内容适合,但问题是,我不知道如何处理的情况下,最后一个(红色框)应该转到第二行。我正在使用autolayoutcartography

如果有人能把我引向正确的方向,我将非常感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-02-21 12:52:57

首先,根据当前标签的位置计算文本的宽度。

如果文本宽度大于当前标签的宽度,那么从下面的链接中看到我的答案:

Auto Layout how to move the view2 from right to the bottom?

计算宽度:

代码语言:javascript
复制
func widthForView1(_ text:String, font:UIFont, height:CGFloat) -> CGFloat
{

let label:UILabel = UILabel(frame: CGRect(x: 0, y: 0, width: your_label_width, height: your_lable_height))
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.byWordWrapping
label.text = text
label.font = font
label.sizeToFit()
return label.frame.width
}
票数 1
EN

Stack Overflow用户

发布于 2017-02-21 12:35:08

使用标签视图可以解决这个问题。TagListView是一个外部库。当您将视图添加为taglistView的子类时,它的高度会相应地增加。

将此添加到pod文件: pod 'TagListView‘

代码语言:javascript
复制
func addTags() {
        let str1 = "Hi"
        tagListView.addTag(str1)
        let str2 = "Helloo"
            tagListView.addTag(str2)
        let str3 = "How Are u ? "
        tagListView.addTag(str2)
        tagListView.isUserInteractionEnabled = false
    }
票数 0
EN

Stack Overflow用户

发布于 2017-02-21 12:39:17

您不能只使用约束来完成这一任务。若要更改元素在屏幕上的整个位置,需要以编程方式进行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42367134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档