- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
在我的问题“How do I get -[NSString sizeWithFont:forWidth:lineBreakMode:]
to work?”中,我了解到 -[NSString sizeWithFont:constrainedToSize:lineBreakMode:]
实际上是我需要的。
-[NSString sizeWithFont:forWidth:lineBreakMode:]
的文档说明它实际上并没有将文本换行到其他行。那么我将如何使用它呢? (示例会有所帮助。)
最佳答案
它也适用于多行字符串。
基本上,它是一个函数,可让您查看使用字体和换行模式呈现时字符串的大小。
当我想在某个区域显示可变长度的文本时,我会在应用程序的几个地方使用它。
默认情况下,UILabel 会将文本垂直居中。要使文本顶部对齐,您需要将标签的大小调整为仅包含其中的字符串所需的高度。
我用这个方法来做这个。
我将如何使用它的示例如下:
//Calculate the expected size based on the font and linebreak mode of your label
CGSize maximumLabelSize = CGSizeMake(296,9999);
CGSize expectedLabelSize = [yourString sizeWithFont:yourLabel.font
constrainedToSize:maximumLabelSize
lineBreakMode:yourLabel.lineBreakMode];
//adjust the label the the new height.
CGRect newFrame = yourLabel.frame;
newFrame.size.height = expectedLabelSize.height;
yourLabel.frame = newFrame;
您指定要放置文本的区域有多大,然后此方法会告诉您它将占用多少空间(根据需要换行)。此外,如果字符串会溢出您提供的 rect 的边界,您可以判断然后决定如何显示文本。
对它的引用实际上并没有包裹文本,因为这个方法实际上并没有对文本做任何事情。它只是虚拟地布置它并返回真正布置它需要多大的区域。
它负责执行包装/其他需要完成的操作。
希望对您有所帮助。
克里斯。
关于iphone - 什么是-[NSString sizeWithFont :forWidth:lineBreakMode:] good for?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/455553/
为什么这行不通?无论字符串的长度如何,它总是返回 18。有 this thread ,但不是确定的答案。 NSString * t = @""; CGSize size = [t si
我一直使用的许多方法来确定用于创建复杂 pdf 文档的打印字符串的布局在 iOS7 中已被弃用。文档调用了相同的方法来替代所有已弃用的 sizeWithFont 方法: boundingRectWit
我有一个奇怪的问题。我的 sizeWithFont: forWidth: lineBreakMode:NSLineBreakByWordWrapping正在返回错误的值。我有一个字符串数组,需要放在一
这个问题在这里已经有了答案: How to calculate actual font point size in iOS 7 (not the bounding rectangle)? (8 个答
在我的问题“How do I get -[NSString sizeWithFont:forWidth:lineBreakMode:] to work?”中,我了解到 -[NSString sizeW
sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode: 返回的 CGSize 始终包含相同的高度。为什么会这样,有没有办法解决这
我用建议的解决方案描述了我的问题,更新了我的问题“Sizing a UILabel (in the iPhone SDK) to fit?”,但没有得到答案。也许通过提出新问题我会得到更好的结果...
我在 iPhone SDK 开发人员文档的 NSString 类引用中找不到 NSString sizeWithFont:forWidth:lineBreakMode: 方法的文档(参见 Kevin
除非我读错了文档,否则这个方法 sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode: 似乎没有返回正确的 CGSize。这是示
随着 iOS7 的发布,以下功能已被弃用: drawAtPoint:forWidth:withFont:minFontSize:actualFontSize:lineBreakMode:baselin
此方法在 iOS 7.0 中已弃用: drawAtPoint:forWidth:withFont:fontSize:lineBreakMode:baselineAdjustment: 现在使用 dra
我是一名优秀的程序员,十分优秀!