2014-07-10 3 views
2

Я нахожусь проблема с exclusionPaths когда TextView имеет символы новой строки:Неверные exclusionPaths с новыми линиями в UITextView

Вот мой код:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    UIView *view = [[UIView alloc] init]; 
    UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 333, 360, 480)]; 
    view.frame = CGRectMake(50, 0, 50, 50); 
    view.backgroundColor = [UIColor blackColor]; 
    NSLog(@"%@", NSStringFromCGRect(view.frame)); 
    [textView addSubview:view]; 

    CGRect relativeRect = [textView convertRect:view.bounds fromView:view]; 

    UIBezierPath *bezierPath = [UIBezierPath bezierPathWithRect:relativeRect]; 
    textView.text = @"asddsaadasddsasdasdjsdhfjkdhkjdhfgjkldhsgfjlk\n\nhfdsgjklhdfsljkghdklfjgshdgjklfshdfgjklhfglkjdshjklgfdshjklgdfshkljfdsghfjkldghlkjfdghskljgdfhslkjgdfshjklgfdshjkgfdshlkjgdfhskljdgfhsjklgdhsjklfgdshjkglfdshjklgfdshlkjfgdhjklgdfshjdfkslghkjfdlsghjkldsfghjkhdfsgkjlhjgkldfshgdflksjhfdksgjhdfkjlgshfkljdshgjkdfhskjglhdfsjkghdfkjglhdsfkjghkljdfhgkjlhdsfkjlghjkldsfghjklhgsfdjklhgsdfkjlghdsfklgfdhsklg"; 
    textView.textContainer.exclusionPaths = @[bezierPath]; 
    [self.view addSubview:textView]; 

} 

И вот результат:

enter image description here

проблема в том, что символы новой строки делают exclusionPaths больше, чем они должны быть. Проблема также описана здесь: Newlines in iOS 7 UITextView breaking Text Kit exclusion zone wrapping, но она показывает, как исправить эту ошибку iOS 7, если использовать Interface Builder для создания UITextView. Как я могу исправить это программно? Благодаря!

ответ

4

Так выигрышная свойство, чтобы отключить это «scrollEnabled»:

textView.editable = NO 
textView.scrollEnabled = NO 

Приведенный выше код исправляет мои проблемы с exclusionPaths

0

Попробуйте использовать это в подкласс TextView, если вам нужно редактируемые TextView

- (void)layoutSubviews 
{ 
[super layoutSubviews]; 

self.contentOffset = CGPointMake(0, 0); 
Смежные вопросы