I debugged this problem a bit and it seems to be a bug in the NSLayoutManager way of NSLayoutManager layout. As pointed out in other answers, a UITextView is built around TextKit with iOS7 and thus uses the NSLayoutManager inside the layout text. UILabel directly uses body text for layout text. Both end up using Core Text to display glyphs.
You should open an error report with Apple and publish the number so that people can duplicate it. The issue has not yet been fixed in the beta version of iOS7.1.
As a workaround, you can replace UITextView other alternative Core Text editors that compose and render directly with Core Text, where the problem does not exist.
I tested SECoreTextView and it shows the text correctly. It implements a similar API for UITextView , but internally uses Core Text.
Here's what it looks like after replacing a UITextView with a SECoreTextView :
SETextView *textView = [[SETextView alloc] initWithFrame:CGRectMake(0, 0, 100, 40)]; textView.center = CGPointMake(self.view.center.x, self.view.center.y+40); textView.font = [UIFont fontWithDescriptor:desc size:24]; textView.text = @"ܩ̈ ܡ̄ ܬ̇ ܒ̃"; textView.textColor = [UIColor blackColor]; textView.backgroundColor = [UIColor whiteColor]; textView.editable = YES; [self.view addSubview:textView];

Leo Natan Feb 14 '14 at 18:44 2014-02-14 18:44
source share