我想确定字符串的书写方向,以便可以在 CALayer 中正确呈现从右到左的语言,例如阿拉伯语。
所以我有这个方法
+(UITextAlignment)alignmentForString:(NSString *)astring
{
UITextView *text = [[UITextView alloc] initWithFrame:CGRectZero];
text.text = astring;
if ([text baseWritingDirectionForPosition:[text beginningOfDocument] inDirection:UITextStorageDirectionForward] == UITextWritingDirectionRightToLeft) {
return UITextAlignmentRight;
}
return UITextAlignmentLeft;
}
工作正常,但感觉有点沉重,只是为了发现对齐我的文本的方式,尤其是在 drawInContext 中调用它时(尽管相对不常见)。
是否有更轻松的方法来确定给定字符串的写入方向,或者我应该在过早优化的基础上坚持这一点。它必须对 iOS 5 友好。