Новые строки в iOS 7 UITextView ломают перенос запретной зоны Text Kit

работаю с Text Kit в iOS 7, и яя нахожу много странностей вокругNSTextContainer зоны отчуждения. I '

у нас есть два взгляда:UITextView и простой перетаскиваемыйUIView; какUIView движется, я создаю безье путь изUIViewкадр (скорректирован с точностью доUITextViewS координатное пространство), и я обновляюUITextViewNSTextContainerexclusionPaths массив - довольно просто.

На первом скриншоте вы видите, что Text Kit прекрасно оборачивает текст вокруг прямоугольной зоны исключения:

Тем не менее, когда пользователь вводит новые строки вUITextViewПохоже, что TextKit считает, что зона запрета намного больше по вертикали - по сравнению с тем, что кажется таким же высоким, как пробел, созданный новой строкой. Путь Безье точно такой же, так что, похоже, это проблема текстового набора (если я нея что-то делаю не так).

Код:

ViewController.h:

@interface ViewController : UIViewController

@property (nonatomic, strong) IBOutlet UITextView *textView;
@property (nonatomic, strong) IBOutlet UIView *dragView;

@end

ViewController.m:

-(void)viewDidLoad
{
    [super viewDidLoad];

    UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(move:)];
    [panRecognizer setMinimumNumberOfTouches:1];
    [panRecognizer setMaximumNumberOfTouches:1];
    [self.dragView addGestureRecognizer:panRecognizer];

    [self updateExclusionZone];
}

-(void)move:(UIPanGestureRecognizer *)pan
{
    [self.view bringSubviewToFront:[pan view]];

    if ([pan state] == UIGestureRecognizerStateBegan) {
        NSLog(@"pan began");
    }

    self.dragView.center = [pan locationInView:self.view];
    [self updateExclusionZone];

    if ([pan state] == UIGestureRecognizerStateEnded) {
        NSLog(@"pan ended");
    }
}

-(void)updateExclusionZone
{
    CGRect dragViewFrame = self.dragView.frame;
    CGRect exclusionRect = [self.view convertRect:dragViewFrame toView:self.textView];

    UIBezierPath *exclusion = [UIBezierPath bezierPathWithRect:exclusionRect];

    self.textView.textContainer.exclusionPaths = @[exclusion];
}

Какие-нибудь мысли?

Ответы на вопрос(1)

Ваш ответ на вопрос