Wednesday 3 August 2011

UIWebView'da Scroll Özelliğini Engelleme

UIWebView UIScrollView'dan türemediğinden dolayı, scrolling ya da bounce parametrelerini kullanma imkanımız yok. Bu nedenle, scroll özelliğini engelleme için iki farklı yöntem aklıma geldi.

İlk yöntemde, UIWebView'ın subView'larından UIScrollView'dan türemiş olan view'u bularak onun parametrelerini NO'ya çektim.

UIView* row = nil;
for(row in webView.subviews){
if([row isKindOfClass:[UIScrollView class] ]){
UIScrollView* scrollRow = (UIScrollView*) row;
scrollRow.scrollEnabled = NO;
scrollRow.bounces = NO;
}
}
İkinci yöntem ise daha çok Delegate üzerine. UIWebView UIScrollView'dan türememiş dedim fakat UISCrollViewDelegate'i implement edebilir. Bu nedenle, eğer bir custom UIWebView yapıp, UIScrollViewDelegate'e delege edersek ve ilgili delege metodlarını da implement edersek scroll özelliğini yakalayabiliyoruz.

@interface CustomWebView : UIWebView …

@implementation CustomWebView

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
scrollView.scrollEnabled = NO;
}
Kullanıcı ekranı çekmeye başladığı an bu metod çağrılıyor olacak. Böylece scroll özelliğini de engellemiş olacağız.

No comments: