为标签中的String绑定Rect

时间:2015-08-31 13:40:38

标签: ios objective-c bounding-box

我试图在标签中获取属性字符串的边界矩形,但我只能获得大小,而不是原点。你们知道我的方法有什么不对吗?为什么它没有找回正确的来源?

- (CGRect)boundingRectForString:(NSAttributedString *)attributedstring label:(UILabel *)label
{
    CGRect labelSizeRect = [attributedstring boundingRectWithSize:label.bounds.size
                                                           options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
                                                           context:nil];

    return labelSizeRect;
}

2 个答案:

答案 0 :(得分:0)

您的函数boundingRectForString仅返回属性字符串的矩形。

如果您想获得原点,您需要查看标签yourLabel.frame.origin的框架。

答案 1 :(得分:0)

标签内文本的原点是(0,0) - 因为边界框仅计算适当的宽度/高度。 标签的位置是label.frame.origin

更新

Blue box = UILabel, green box = surrounding rect around the string

获得紫色X 位置:

textView.userInteractionEnabled = NO;

另一方面,如果你想在边界框中找到字符串的位置,那么显然是(0,0)