- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 iOS 6 中我使用了这个方法:
[self.handText sizeWithFont:font
minFontSize:10.0f
actualFontSize:&maxFontSize
forWidth:handWidth/2
lineBreakMode:UILineBreakModeClip];
xcode 5 表示 'sizeWithFont:minFontSIze:actualFontSize:forWidth:lineBreakMode:' 已弃用:首先在 iOS 7 中弃用
现在我是这样实现的:
[self.handText sizeWithAttributes:@{NSFontAttributeName:font}
minFontSize:10.0f
actualFontSize:&maxFontSize
forWidth:handWidth/2
lineBreakMode:NSLineBreakByClipping];
这里 xcode 抛出另一个警告:'实例方法-sizeWithAttributed:minFontSize:forWidth:lineBreakMode:'未找到(返回类型默认为'id')
任何人都可以帮我解决这个警告吗?
最佳答案
改用这个辅助方法:
-(CGSize)frameForText:(NSString*)text sizeWithFont:(UIFont*)font constrainedToSize:(CGSize)size lineBreakMode:(NSLineBreakMode)lineBreakMode {
NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];
paragraphStyle.lineBreakMode = lineBreakMode;
NSDictionary * attributes = @{NSFontAttributeName:font,
NSParagraphStyleAttributeName:paragraphStyle
};
CGRect textRect = [text boundingRectWithSize:size
options:NSStringDrawingUsesLineFragmentOrigin
attributes:attributes
context:nil];
//Contains both width & height ... Needed: The height
return textRect.size;
}
如果您需要同时支持 iOS 6 和 iOS 7,请像这样使用:
#ifdef __IPHONE_7_0
titleSize = [self frameForText:self.titleLabel.text sizeWithFont:self.titleLabel.font constrainedToSize:CGSizeMake(labelMaxWidth,self.titleLabel.font.lineHeight) lineBreakMode:self.titleLabel.lineBreakMode ];
subtitleSize = [self frameForText:self.subtitleLabel.text sizeWithFont:self.subtitleLabel.font constrainedToSize:CGSizeMake(labelMaxWidth,self.subtitleLabel.font.lineHeight) lineBreakMode:self.subtitleLabel.lineBreakMode];
#else
titleSize = [self.titleLabel.text sizeWithFont:self.titleLabel.font
constrainedToSize:CGSizeMake(labelMaxWidth,self.titleLabel.font.lineHeight)
lineBreakMode:self.titleLabel.lineBreakMode];
subtitleSize = [self.subtitleLabel.text sizeWithFont:self.subtitleLabel.font
constrainedToSize:CGSizeMake(labelMaxWidth,self.subtitleLabel.font.lineHeight)
lineBreakMode:self.subtitleLabel.lineBreakMode];
#endif
关于iphone - 替换弃用的 sizeWithFont :minFontSIze:actualFontSize in ios 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20786067/
所以, 在 sizeWithFont:minFontSize:actualFontSize 中,我们传递了一个指向 actualFontSize 的指针,然后可以使用它来缩小标签内的字体。如: [s
在 iOS 6 中我使用了这个方法: [self.handText sizeWithFont:font minFontSize:10.0f actualFontSize:&maxFontSize
这个问题在这里已经有了答案: How to calculate actual font point size in iOS 7 (not the bounding rectangle)? (8 个答
sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode: 返回的 CGSize 始终包含相同的高度。为什么会这样,有没有办法解决这
除非我读错了文档,否则这个方法 sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode: 似乎没有返回正确的 CGSize。这是示
随着 iOS7 的发布,以下功能已被弃用: drawAtPoint:forWidth:withFont:minFontSize:actualFontSize:lineBreakMode:baselin
我是一名优秀的程序员,十分优秀!