2012-02-14 2 views
2

В iOS5 это работает отлично:IOS UIScrollView setScrollEnabled терпит неудачу

[descriptionWebView.scrollView setScrollEnabled:NO]; 

Но в любом прошивки до 5 лет он терпит неудачу с:

[UIWebView scrollView]: unrecognized selector sent to instance 0x791f9e0 
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIWebView scrollView]: unrecognized selector sent to instance 0x791f9e0' 

ответ

7

Проблема не setScrollEnabled: вызова. На самом деле, scrollView из UIWebView не был показан до iOS 5 (именно поэтому он не срабатывает ни на что другое). Для получения дополнительной информации см. Документацию UIWebView.

В предыдущих версиях iOS у вас было resort to iterating through the subviews вашего UIWebView, чтобы найти UIScrollView.

+0

ahh, интересно, ладно спасибо. Поэтому я предполагаю, что должен создать условное условие, которое применяется только к setScrollEnabled, если ios5. Как определить версию в коде? – Jesse

6

Вы можете сделать такой тест, который не требует, чтобы вы проверяли, какая версия iOS есть.

if([descriptionWebView respondsToSelector:@selector(scrollView)]){ 
    [descriptionWebView.scrollView setScrollEnabled:NO]; 
} 
+1

сладкий, отлично работает – Jesse

Смежные вопросы