- 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/
我正在尝试使用sizeWithFont,如下所示: [commentTextLabel.text sizeWithFont:commentTextLabel.font
我在sizeWithFont(特别是lineBreakMode)上遇到了一些麻烦。 CGSize maxSize = CGSizeMake(30, 999); UIFont *font = [UIFo
我正在 iPhone 上制作聊天应用程序。我对 sizeWithFont:constrainedToSize:lineBreakMode 函数有疑问。当 NSString 有 long length
尝试创建 CGSize 来设置 UILabel 的正确高度时出现泄漏。在 heightForRowAtIndexPath 中设置高度时,我也收到相同的泄漏。 这是泄漏的代码片段: CGSize siz
所以我刚刚浏览了一个旧的 iOS 项目,下面一行说它已弃用: CGSize stringSize = [string sizeWithFont:self.stringLabel.font constr
我有以下代码: float height = [string sizeWithFont:[UIFont systemFontOfSize:kFontSize] constrainedToSize:CG
sizeWithFont:constrainedToSize:lineBreakMode: 似乎没有返回正确的宽度。执行这些代码后,我看到标签中的部分字符串被截断了,这意味着我必须手动添加几个像素的大
不要与返回 CGSize 的 NSString sizeWithFont 方法混淆,我正在寻找的是返回 NSString 的方法> 受限于某个 CGSize。我想要这样做的原因是当使用 Core Te
我正在将我的应用程序更新到iOS 7,终于得到了它,但是有一件事我找不到解决方案。 在Xcode 4中,我使用了以下方法: #define FONT_SIZE 14.0f #define CELL_C
我已经阅读了很多关于该主题的问题,但我似乎无法找到我的代码有什么问题: UILabel *nameLabel = [[UILabel alloc] init]; [nameLabel setText:
在 Xcode 5 上将项目从 iOS5.0 转换为 iOS7/iOS6。下面的代码给出了编译时警告: 'sizeWithFont:constrainedToSize:lineBreakMode:'已
我正在尝试制作一个 UITableViewCell,根据它显示的字符串的长度来调整其高度,但我对此方法很感兴趣。 这是我得到的: NSString *text = @"A really long st
AppKit(适用于 Mac OS X 上的 Cocoa)中是否有任何等效方法与 UIKit 的 [NSString sizeWithFont:constrainedToSize:] 执行相同的操作?
我已经浏览了 SO 上关于此方法的每一篇文章的感觉。许多海报的答案都是设置一个非常大的值作为高度约束。 但是,对我来说这不起作用。这是我的代码: //Create the contentLabel L
我有一个字幕样式 UITableViewCell,其高度根据每个字段的文本长度动态变化。问题是,如果标签有多行,textLabel 的高度(CGSize 大小)不会增加。 奇怪的是,detailTex
当我运行以下代码时(iOS 6.1 SDK): UIFont *font = [UIFont fontWithName:@"Avenir" size:12.0]; NSString *text1 =
在 iOS 7 中,方法: - (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lin
UILabel 位于 UITableViewCell 内。点击单元格时,高度会扩展,并且会出现第二个 UILabel,其中包含不同数量的数据。 问题是,如果换行,sizeWithFont:constr
我怎样才能转换 CGSize labelHeighSize = [text sizeWithFont: [UIFont systemFontOfSize:16] constrainedToSize:
这个问题在这里已经有了答案: Replacement for deprecated -sizeWithFont:constrainedToSize:lineBreakMode: in iOS 7?
我是一名优秀的程序员,十分优秀!