我知道这已经发布了,但是我找到了解决方案
-(CGFloat)widthOfText{
CGRect idealFrame = [self.text boundingRectWithSize:self.frame.size
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{ NSFontAttributeName:self.font }
context:nil];
return idealFrame.size.width;
}
self 是一个 UILabel
不工作。
我想在字符串的末尾放置一个按钮,所以我需要字符串的宽度来计算按钮的绝对位置
谁能解释为什么这不起作用或建议不同的方法?
最佳答案
一个或多个输入不是你所期望的,NSLog()
self.text
, self.frame
, self.font
-- 基本调试。
传入参数确实比使用ivars更好,这样更容易测试。它还消除了对类的依赖。
正常工作的例子:
NSString *text = @"1235";
CGSize frameSize = CGSizeMake(300, 50);
UIFont *font = [UIFont systemFontOfSize:12];
CGRect idealFrame = [text boundingRectWithSize:frameSize
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{ NSFontAttributeName:font }
context:nil];
NSLog(@"width: %0.1f", idealFrame.size.width);
关于objective-c - 查找 NSString 的宽度作为 CGFloat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25354254/