使用drawInRect时如何绘制包含字符串的框?

发布于 2024-12-04 15:43:19 字数 83 浏览 0 评论 0原文

我正在使用 UIKit 中的 drawInRect 来绘制字符串。我还想绘制(参见)绘制字符串的边界矩形(有点像在盒子里有一个字符串)。如何做到这一点?

I am using drawInRect from UIKit to draw a string. I want to also draw (see) the bounding rectangle where the string is drawn (sort of having a string inside a box). How to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

怀念你的温柔 2024-12-11 15:43:19

drawInRect UIKit 方法返回一个 CGSize,它是绘制字符串的大小。将其与传递给 drawInRectCGRect 的原点一起使用,这就是您要绘制的矩形。

CGSize size = [string drawInRect:rect .... plus your options];
CGRect boundingRect = rect;
boundingRect.size = size;

[[UIBezierPath bezierPathWithRect:boundingRect] stroke];

The drawInRect UIKit methods return a CGSize, which is the size of the drawn string. Use this together with the origin of the CGRect you passed to drawInRect, and that is the rect you want to draw.

CGSize size = [string drawInRect:rect .... plus your options];
CGRect boundingRect = rect;
boundingRect.size = size;

[[UIBezierPath bezierPathWithRect:boundingRect] stroke];
亚希 2024-12-11 15:43:19

drawinRect 不再返回 CGSize,因此根据 jrturton 的帖子,我使用类似的方法来获得完全围绕字符串内容绘制的框 -

[str1 drawInRect:rect withAttributes:attributes];

CGRect boundingRect = [str1 boundingRectWithSize:rect.size options:NSLineBreakByWordWrapping | NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil];
boundingRect.origin.x = rect.origin.x;
boundingRect.origin.y = rect.origin.y;

[[UIBezierPath bezierPathWithRect:boundingRect] stroke];

drawinRect does not return CGSize anymore, so based on jrturton's post, I used something like this to get a box drawn exactly around string contents -

[str1 drawInRect:rect withAttributes:attributes];

CGRect boundingRect = [str1 boundingRectWithSize:rect.size options:NSLineBreakByWordWrapping | NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil];
boundingRect.origin.x = rect.origin.x;
boundingRect.origin.y = rect.origin.y;

[[UIBezierPath bezierPathWithRect:boundingRect] stroke];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文