ios – 使用给定字符串查找具有恒定宽度和高度的UITextView中的字符数?

ios – 使用给定字符串查找具有恒定宽度和高度的UITextView中的字符数?,第1张

概述在我的应用程序中,如果文本输入很大,我需要在文本视图中设置Read more.所以我的方法是找到适合文本视图的字符串范围并附加查看更多信息.有没有办法实现它在 Swift中.要求是模拟阅读更多选项以在详细视图中显示完整文本,如facebook. 您正在寻找的功能是 CTFramesetterSuggestFrameSizeWithConstraints.基本上,它允许您找出适合某个帧的字符数.您可 在我的应用程序中,如果文本输入很大,我需要在文本视图中设置Read more.所以我的方法是找到适合文本视图的字符串范围并附加查看更多信息.有没有办法实现它在 Swift中.要求是模拟阅读更多选项以在详细视图中显示完整文本,如facebook.解决方法 您正在寻找的功能是 CTFramesetterSuggestFrameSizeWithConstraints.基本上,它允许您找出适合某个帧的字符数.您可以使用该数字来剪切当前文本并插入按钮.

我为UILabel的子类编写了这个函数的实现:

- (NSInteger)numberOfCharactersThatFitLabel {    // Create an 'CTFramesetterRef' from an attributed string    CTFontRef FontRef = CTFontCreateWithname((CFStringRef)self.Font.Fontname,self.Font.pointSize,NulL);    NSDictionary *attributes = [NSDictionary dictionaryWithObject:(__brIDge ID)FontRef forKey:(ID)kCTFontAttributename];    CFRelease(FontRef);    NSAttributedString *attributedString  = [[NSAttributedString alloc] initWithString:self.text attributes:attributes];    CTFramesetterRef frameSetterRef = CTFramesetterCreateWithAttributedString((CFAttributedStringRef)attributedString);    // Get a suggested character count that would fit the attributed string    CFRange characterFitRange;    CTFramesetterSuggestFrameSizeWithConstraints(frameSetterRef,CFRangeMake(0,0),NulL,CGSizeMake(self.bounds.size.wIDth,self.numberOflines*self.Font.lineHeight),&characterFitRange);    CFRelease(frameSetterRef);    return (NSInteger)characterFitRange.length;}

Here’s a bog post用于完全实现将随机文本剪切为指定行数并向其添加“查看更多”文本.

总结

以上是内存溢出为你收集整理的ios – 使用给定字符串查找具有恒定宽度和高度的UITextView中的字符数?全部内容,希望文章能够帮你解决ios – 使用给定字符串查找具有恒定宽度和高度的UITextView中的字符数?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1105491.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存