- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我怎样才能转换
CGSize labelHeighSize = [text sizeWithFont: [UIFont systemFontOfSize:16] constrainedToSize:maximumSize lineBreakMode:NSLineBreakByTruncatingTail];
到
CGSize labelHeighSize = [text boundingRectWithSize:maximumSize options: attributes: context:
最佳答案
首先是方法:
- (CGRect) boundingRectWithSize:(CGSize)size
options:(NSStringDrawingOptions)options
attributes:(NSDictionary *)attributes
context:(NSStringDrawingContext *)context;
返回 CGRect
而不是 CGSize
所以你需要使用 CGRect
。
编辑根据苹果文档,请参阅 here , 它说
This option is ignored if
NSStringDrawingUsesLineFragmentOrigin
is not also set. In addition, the line break mode must be eitherNSLineBreakByWordWrapping
orNSLineBreakByCharWrapping
for this option to take effect. The line break mode can be specified in a paragraph style passed in the attributes dictionary argument of the drawing methods.
下面是您可以使用的示例代码:
NSString *text = @"Some text to measure";
UIFont *labelFont = [UIFont systemFontOfSize:16];
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];
//set the line break mode
paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
NSDictionary *attrDict = [NSDictionary dictionaryWithObjectsAndKeys:labelFont,
NSFontAttributeName,
paragraphStyle,
NSParagraphStyleAttributeName,
nil];
//assume your maximumSize contains {255, MAXFLOAT}
CGRect lblRect = [text boundingRectWithSize:(CGSize){225, MAXFLOAT}
options:NSStringDrawingUsesLineFragmentOrigin
attributes:attrDict
context:nil];
CGSize labelHeighSize = lblRect.size;
关于ios - 内容已弃用 sizeWithFont :constrainedToSize to boundingRectWithSize:options:attributes:context:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23075693/
因此,在使用 NSString 的 -sizeWithFont 系列方法调用时,我似乎遇到了一些奇怪的行为,具体取决于我是否在 iPhone 模拟器上调用它或实际设备。 很简单,当 -sizeWith
我有以下代码: - (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexP
我有一些 uilabels,其中有一些令人烦恼的复杂定位代码。 如果我使用 sizeWithFont 根据文本调整它们的大小,在查找该大小时是否会考虑 autoshrink 属性? 最佳答案 查看:
伙计们。我有带有不同单元格的 UITableView,我有计算高度的代码。在一个项目中它运行完美,但在第二个项目中它返回高度等于 0。是什么原因造成的?我的代码: - (CGFloat)tableVi
我正在尝试根据内容的内容计算表格 View 中单元格的必要高度。这是在 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtInde
我正在尝试测量 NSString 的视觉大小,它考虑了我可以呈现的行数。但是, sizeWithFont 没有考虑 numberOfLines 属性?所以我的布局算法将所有内容定位在低于实际需要的位置
我有一个类,其工作是将文本解析为多个页面。我使用 sizeWithFont: 方法来识别一页何时结束而另一页何时开始。但不幸的是,由于需要解析的文本量相当大,整个操作需要在后台线程上执行(需要几秒钟才
每当文本中出现 & 时,获取高度似乎总是会失败。两个函数返回的值都小于实际高度: CGSize labelSize = [nameLabel.text sizeWithFont:nameLabel.f
我有一个 UITableView ,其中每个单元格都使用 Core Text 来绘制一些文本。在计算返回 heightForRow 的高度时,我使用 NSString sizeWithFont 来确定
我正在尝试确定 UILabel 中字符的精确位置,例如: (UILabel *)label.text = @"你好!"; 我想确定'o'的位置。我认为我可以使用 sizeWithFont 将所有前面的
我一直在插电,我需要使用sizeWithFont:方法正确排列我的布局,但是它似乎不适用于自定义字体。有没有办法让它工作,或者我可以使用另一种方法? 我对此很困惑。任何帮助表示赞赏。 最佳答案 siz
我只想使用 iPhone 系统字体,但我不知道该怎么调用它。 sizeWithFont:@"HelveticaNeue"给我一个错误的参数错误。 sizeWithFont:系统给我一个未初始化的变量错
我正在尝试使用 sizeWithFont 动态确定每行应在 TableView 中的大小,但由于某种原因它始终为 0.0。这是我的代码: - (CGFloat)labelHeight:(NSS
如果我试图找出字符串的宽度(以像素为单位) CGSize sz = [@"Test text to hilight without new line for testing" sizeWithFont
为什么整个单词的 sizeWithFont 会产生与其字母大小之和不同的结果? 以下是带和不带字距调整的文本示例: CGFloat fontSize = 36; UIFont *font = [UIF
我在我的应用中使用了 Georgia 和 Georgia-Bold 字体。因为它必须显示我从服务器下载的大量文本数据,所以我在应用程序的各个地方广泛使用 NSString 的方法 sizeWithFo
我想根据文本计算tableviewcell 的高度。我正在使用 CGSize userInputSize = [userLabel sizeWithFont:[UIFont fontWithName:
sizeWithFont 在多线程中崩溃,这是调试信息: 1 0x00a0df8e in icu::RuleBasedBreakIterator::handleNext 2 0x00a0daff in
如果我强制其框架高度足够高,我有一个 UILabel 可以正确地自动换行。但是,我希望它动态地找到合适的高度,而 sizeWithFont 方法并没有这样做;该方法只是在我的标签中创建了一行: CGS
方法(sizeWithFont: forWidth: lineBreakMode:)在 iOS 7.0 中被弃用。 但是我怎样才能做同样的事情,就像在 iOS 7.0 中下面的代码一样? CGSize
我是一名优秀的程序员,十分优秀!