- 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/
引用OHAttributedLabel numberOfLines问题。我创建了一个 OHAttributedLabel 并在设置 attributedText 时我的应用程序崩溃了。标签上显示的文本
我在 react-native 中创建了一个应用程序,我可以选择在消息中聊天选项。当我在 TextInput 中单击并键入两行时,上面的一行被隐藏。为了解决这个问题,我在文档中看到了 numberOf
我在 UIStackView 中有一个 UILabel,堆栈 View 在另一个 UIScrollView 中,我正在使用自动布局。标签有单行(即 numberOfLines 等于 1),在少数情况下
let nameBox = UILabel(x: 0, y: 0, w: sideSize, h: sideSize*2/4) nameBox.text = skillName nameBox.tex
我这样做是为了制作我的 UIlabel,将 numberOfLines 设置为 0,这样它就没有行限制: UILabel *nmLbl = [[UILabel alloc] initWithF
我需要计算自定义标签中的文本矩形,而不是使用 UILabel 的 sizeThatFits 方法。下面的代码无法正常工作。主要思想是在 index = numberOfLines - 1 处找到 CT
全部, 我是 iPhone 编程的新手。在下面的代码中,我希望文本显示评论标签中的所有文本,但现在它正在截断它。 numberofLines 也不能正常工作。现在它正在这样做。 “我的名字是弗雷德,我
这个问题已经有答案了: Vertically align text to top within a UILabel (51 个回答) 已关闭 9 年前。 在 iOS 5 上。 我有一个最初放置在 Ni
我有一个自定义的tableViewCell。 questionContent 是一个标签,我设置的: numberOfLines = 0 lineBreakMode = NSLineBreakMode
我正在尝试制作一个 UIButton,它的 titleLabel 中有两行文本。这是我正在使用的代码: UIButton *titleButton = [[UIButton alloc] initWi
我想知道为什么 numberOfLines 不会设置六行的限制,而 maxLength 确实在相同的 TextInput 上工作并限制了用户输入到 140 个字符。 这是我的代码(简化版): 最佳答
当我为我的标签设置文本并检查 myLabel.frame.size.height 时,我总是得到相同的值,就好像总是一行,即使我设置的文本需要多行线...我怎样才能得到“最终”高度? 谢谢 最佳答案
我在 swift 中使用了 UINavigationBar.appearance()。通过使用它,我使用以下代码更改了 UINavigationBar 的 backgroundColor 和 text
我创建了自定义 UITableViewCell。 @interface AnswerCell : UITableViewCell @property (nonatomic, retain) IBOut
我正在从事一个必须同时支持 iOS6 和 iOS7 的项目。我的问题是它在不同系统上的工作方式不同。我正在尝试创建行数等于 2 的 UILabel,但是当我将它的换行模式设置为 NSLineBreak
问题:确定 UILabel 需要的大小(行数),假设宽度为 300 像素。该字符串较长,因此我将 lineBreakMode 设置为 UILineBreakModeWordWrap 并调用 sizeT
如何使用此方法 - (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines 我
我有一个显示用户“简介”的 UILabel。我还让用户能够通过在用户点击时弹出 uitextview 来编辑此文本,然后一旦用户完成添加或从此 uitextview 中删除文本,我说 label.te
我正在 UILabel 中制作多色文本。它运作良好。但问题是我知道了,我可以在 UIlabel 中显示多行。这意味着 numberOfLine 属性不起作用。 extension NSMut
我只想知道行数,给定字体、约束和文本。我可以在不创建 UILabel 的情况下解决这个问题吗? + (int)numberOfLines:(NSDictionary *)data{ NSStr
我是一名优秀的程序员,十分优秀!