- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 iOS 5 上。
我有一个最初放置在 Nib 中的 UILabel 元素。我希望 x 位置保持固定。我希望它占用 1 行或 2 行。如果超过两行,则应使用换行符设置来显示省略号。
我使用numberOfLines
属性(property)和-sizeToFit
如果我设置 UILabel 的 numberOfLines
属性设置为 0,它会正确地看到某些文本没有足够的空间,并在调用 -sizeToFit
后将其换行到第二行。但在极少数情况下,该行足够长,可以延伸到 3 行,我得到三行,这是我不想要的。如果我设置numberOfLines
属性设置为 2,它实际上将整个事物拉伸(stretch)到一条线上,并将 Nib 中设置的初始框架拉长得多。
CGRect titleFrame = [[self titleLabel] frame];
[[self titleLabel] setNumberOfLines:0];
[[self titleLabel] setText:newProductTitleText];
[[self titleLabel] sizeToFit];
CGRect newTitleFrame = [[self titleLabel] frame];
CGRect 只是让我能够在事后进行计算。所以设置numberOfLines
为 0 有效,并且不会更改框架中的原始 origin.x,并且会将长文本分成多行,但不会将其限制为 2 行。设置numberOfLines
属性为 2,当我阅读 Apple 文档时
This property controls the maximum number of lines to use in order to fit the label’s text into its bounding rectangle. The default value for this property is 1. To remove any maximum limit, and use as many lines as needed, set the value of this property to 0.
看来我应该能够将其设置为 2 并且仍然可以工作。我期望 sizeToFit
当扩展以适应所有文本时,在正 X 和 Y 方向上扩展,但在 numberOfLines
时,它在负 X 方向上扩展设置为 0 以外的值。
预计到达时间:“自动调整大小”支柱设置为上部和左侧以将其固定在最小 x,y。
感谢您的见解。
最佳答案
我遇到了类似的问题,其中 -[UILabel sizeToFit]
不遵守我在 numberOfLines
设置为 2 时设置的最大宽度。以下是我解决该问题的方法:
CGFloat titleMaxWidth = 200;
CGFloat titleMinHeight = 30;
CGFloat titleMaxHeight = 40;
UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 5, titleMaxWidth, titleMaxHeight)]; // alternatively, you could do this in a nib
titleLabel.numberOfLines = 0;
titleLabel.text = @"The title label will be sized appropriately with this technique.";
titleLabel.font = [UIFont boldSystemFontOfSize:16];
[titleLabel sizeToFit];
titleLabel.numberOfLines = 2;
if (titleLabel.height > titleMaxHeight)
{
titleLabel.height = titleMaxHeight;
}
else if (titleLabel.height < titleMinHeight)
{
titleLabel.height = titleMinHeight;
}
如您所见,我还想要标签的最小高度,因为 -sizeToFit
通常会使标签非常小,但如果您不关心最小值,则可以忽略该代码高度。 titleMaxHeight 的“神奇数字”40 来自实验并发现使用这种字体的 2 行标签实际上只需要 40px。这段代码中,-sizeToFit
主要是用来让文本保持在宽度之内,并判断当我们有很短的文本字符串时是否可以减小初始高度40。
关于ios5 - UILabel 和 numberOfLines 以及 sizeToFit :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12328077/
我正在开发一个主视图填满整个屏幕的应用程序。这个主视图包含您可以认为是 Sprite 的 subview 。他们使用自己的代码四处游荡。他们四处游荡的逻辑可能会让他们游荡在屏幕之外。我想要做的是调整主
我刚刚遇到了奇怪的问题,我有一个具有动态高度的自定义表格 View 单元格。虽然测试这一切似乎工作正常,但现在我将真实内容加载到其中似乎存在一些问题。 某些文本似乎不会触发 UILabel 中的新行
我有一个应用程序,用户可以随意添加我所说的调色板。项目 (UIViews) 可以从一个调色板拖动到另一个调色板。我以为我可以使用 sizeToFit 方法在添加项目或删除项目时自动调整调色板的大小,但
我正在为 Storyboard View 创建这些标签。我将自动布局设置为“关闭”,并将行数设置为 0,但仅当我注释掉 sizeToFit 时才会显示文本。当然,当文本高度大于 40 时,文本就会被截
我的 ASTextNod 通常需要 3 行,但我从第二行截断了它。结果:我的 ASTextNod 显示 2 行和 3 个截断点,但他的高度是 3 行的高度而不是 2。 我正在寻找类似于 ASTextN
我有一个观点: label1 和label2 之间存在布局约束。按下按钮将 TextView 中的文本添加到 label1。在调整标签 1 的大小以适合文本后(调用 sizeToFit)。调整大小后,
我正在尝试以编程方式操作 UILabel 以使其具有动态宽度。 我发现使用 sizeToFit() 确实可以做到这一点。现在这个标签变成了我的 navigationItem.titleView。我希望
每当后端数据库发生变化时,我都会执行一段代码。本质上,我在父 View 中有一个标签。标签由许多状态消息之一更新,每个状态消息都在不同的行上,以新行 (\n) 结尾。每条状态消息只需要在一行上并且不能
我有时会看到类似这样的代码: NSArray *segmentedControl = [NSArray arrayWithObjects:@"First", @"Second", @"Third",
我有一个自定义的 UITableViewCell,在 Storyboard 上有一个 UILabel。我动态设置此 UILabel 的文本,并且需要相应地调整 UILabel 的宽度,因为在它之后我还
我在 NSTextField 上的 sizeToFit 方法上遇到了一个奇怪的问题。 我有一个 NSView,我正在其中创建一个 CALayer 和一个 NSTextField。我使用 sizeToF
是否有任何简单的方法可以帮助我使用内容大小动态更改依赖 View 的位置? 我想在列中显示多个 View ,这些 View 都有不同的内容。我希望它们被一个接一个地放置(我已经使用如下所示的约束创建了
所以我正在使用 iOS 6 制作一个应用程序,并且想知道为什么我的代码曾经在 iOS 5 上运行良好,但现在不再运行了。我有一个带有动态 UILabel 的单元格,它会根据它所携带的文本进行调整。 这
这是我的代码: let button_video = UIButton(type: .custom) button_video.frame = CGRect.zero if subsession.Vi
属性文本设置为 UILabel。 let label = UILabel() label.frame = view.frame label.numberOfLines = 0 do { let
我以编程方式创建标签。它总是有两条线。不过,这两行的字体大小会改变。因此,标签的高度和宽度必须改变。我尝试使用 sizeToFit 来做到这一点。然而,第二个词(“Day”)仅部分显示。这个词的底部被
我想在指定行数后以编程方式创建一个 UILabel。我正在使用 swift 。我有以下代码: let newLabel = UILabel() newLabel.text = "Hello There
我已经配置了一个测试 Playground ,其中包含 UITableView 和 UIStackView 实例作为其 header 。 stackView 包含 10 个 UILabel。 问题是,
任何人都能够突出显示为什么在下面的代码中需要“[aLabel sizeToFit]”行,摘自 here . 也就是说,创建的 CGRect 已经根据文本字体大小调整了大小,那么为什么还需要 sizeT
我正在尝试使用函数 sizeToFit。它在整个应用程序中完美运行,但在下面的代码中不起作用。此外,如果无法按照我的方式完成,请提出建议。 self.label = [[UIL
我是一名优秀的程序员,十分优秀!