我试图在 UITextView 中禁用任何类型的字距调整
不知何故,在阿拉伯字母中,文本 View 将字母紧缩以适应行,但它只会破坏整个单词,这里有一个例子:
textview 为白色背景,代码为:
NSString *aya =[mainArray objectAtIndex:indexPath.row];
cell.tx.text = aya;
[cell.tx sizeToFit];
cell.tx.frame = CGRectMake(5, 5, 265, cell.tx.frame.size.height);
cell.tx.backgroundColor = [UIColor whiteColor];
还尝试设置 NSMutableAttributedString NSKernAttributeName 值但没有用,
--------------------- 编辑: 这是 Kern 属性的代码:
NSMutableAttributedString *attributedString;
attributedString = [[NSMutableAttributedString alloc] initWithString:aya];
[attributedString addAttribute:NSKernAttributeName
value:@0.0
range:NSMakeRange(0,[aya length])];
[attributedString addAttribute:NSFontAttributeName
value:font
range:NSMakeRange(0,[aya length])];
NSMutableParagraphStyle *paragrapStyle = [NSMutableParagraphStyle new];
paragrapStyle.alignment = NSTextAlignmentRight;
[attributedString addAttribute:NSParagraphStyleAttributeName
value:paragrapStyle
range:NSMakeRange(0,[aya length])];
[cell.tx setAttributedText:attributedString];
最佳答案
这是一个黑客,我不在电脑附近尝试,但试一试:
tx
的 text
属性[tx setText:aya];
NSMutableAttributedString *attrStr = [[tx attributedText] mutableCopy];
[attrStr setAttributes:@{ NSKernAttributeName: @(0.f) }
range:NSMakeRange(0, [attrStr length])];
attrStr
设置回 tx
[tx setAttributedText:attrStr];
这将(希望)保留 UITextView 从您的 NSString 推断的属性。