核心文本 - 小框架太多文本 - 如何添加三个点?

发布于 2024-11-28 12:32:53 字数 123 浏览 2 评论 0原文

我正在使用核心文本在小框架中渲染一些文本。 核心文本擅长计算框架中适合的字符串大小,但如果字符串太长并且需要剪切,我想通过添加三个点来指示这一点。是否可以?如何?我用谷歌搜索了一下,没有任何运气。

I'm using Core Text to render some text in a small frame. Core Text is good at calculating how much of a string that fits in a frame, but if it's too long and needs too be cut, I want to indicate this by adding three dots. Is it possible? How? I've Googled it, without any luck.

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

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

发布评论

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

评论(2

匿名的好友 2024-12-05 12:32:53

就在我的脑海里,你不能做这样的事情吗:

CFRange visibleRange = CTFrameGetVisibleStringRange(frame);
int index = (visibleRange.loc + visibleRange.length) - 3; // -3 to make sure the three dots are visible

NSMutableString *newString = [text mutableCopy];
[newString insertString:@"..." atIndex:index]

// Re-create framesetter and frame with new string. Redraw frame.

Just off the top of my head couldn't you do something like this:

CFRange visibleRange = CTFrameGetVisibleStringRange(frame);
int index = (visibleRange.loc + visibleRange.length) - 3; // -3 to make sure the three dots are visible

NSMutableString *newString = [text mutableCopy];
[newString insertString:@"..." atIndex:index]

// Re-create framesetter and frame with new string. Redraw frame.
泪意 2024-12-05 12:32:53

为文本创建一个CTParagraphStyle,并将kCTLineBreakByTruncatingTail设置为换行模式。

Create a CTParagraphStyle for the text and set kCTLineBreakByTruncatingTail as the line break mode.

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