Продолжая предыдущие ответы, чтобы дать больше информации, я сгенерировал этот код:
В интерфейсе (.h):
#import <UIKit/UIKit.h>
@interface DoubleTextViewController : UIViewController <UITextViewDelegate>
@property (strong, nonatomic) IBOutlet UITextView *textView1;
@property (strong, nonatomic) IBOutlet UITextView *textView1;
@end
В вашей реализации (.m):
Используйте эту функцию viewDidLoad
после определения соответствующих свойств и глобальных переменных.
#import "DoubleTextViewController.h"
#define TEXT_VIEW_1_TAG 1001
#define TEXT_VIEW_2_TAG 1002
@interface DoubleTextViewController () {
BOOL isScrolling;
}
@end
@implementation DoubleTextViewController
@synthesize textView1, textView2;
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view..
isScrolling = NO;
[self.textView1 setTag:TEXT_VIEW_1_TAG];
[self.textView2 setTag:TEXT_VIEW_2_TAG];
[self.textView1 setDelegate:self];
[self.textView2 setDelegate:self];
}
И добавьте эту функцию для одновременной прокрутки.
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (isScrolling) {
return;
}
isScrolling = YES;
if (scrollView.tag == TEXT_VIEW_1_TAG) {
[self.textView2 setContentOffset:scrollView.contentOffset animated:NO];
} else if (scrollView.tag == TEXT_VIEW_2_TAG) {
[self.textView1 setContentOffset:scrollView.contentOffset animated:NO];
}
isScrolling = NO;
}
Как предложеноГерман Клекер, переменная isScrolling
останавливает циклы прокрутки и делает работу с пользователем приятнее.Использование кода, предложенного Фабианом Крейзером, останавливает прокрутку, как только пользователь оставляет палец, что делает его странным.