HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 使用给定字符串查找具有恒定宽度和高度的UITextView中的字符数?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的应用程序中,如果文本输入很大,我需要在文本视图中设置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中的字符数?所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。