Objective-C
183. (Objective-C/objc) [간단 소스] IOS WKWebView 웹뷰 화면 스크롤 이벤트 감지 - UIScrollViewDelegate Webview Scroll
투케이2K
2025. 2. 2. 13:03
[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : OBJECTIVE-C
[소스 코드]
// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------
- 언어 : Objective-c
- 개발 툴 : Xcode
- 기술 구분 : Webview / Scroll / UIScrollViewDelegate
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------
[1] : 사전 웹뷰 뷰컨트롤러에 딜리게이트 등록 : UIScrollViewDelegate
[2] : 웹뷰 속성 지정에서 스크롤 이벤트 감지 등록 : self.webView.scrollView.delegate = self // 스크롤 이벤트 감지를 위해 delegate 설정
[3] : 전체 소스 코드 정의 :
#import <UIKit/UIKit.h>
#import <WebKit/WebKit.h>
@interface WebViewController : UIViewController <WKNavigationDelegate, UIScrollViewDelegate>
@property (strong, nonatomic) WKWebView *webView; // [웹뷰 변수 정의]
@end
@implementation WebViewController
- (void)viewDidLoad {
[super viewDidLoad];
WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
self.webView = [[WKWebView alloc] initWithFrame:self.view.bounds configuration:configuration];
self.webView.navigationDelegate = self;
self.webView.scrollView.delegate = self; // 스크롤 감지를 위해 delegate 설정 : UIScrollViewDelegate
[self.view addSubview:self.webView];
NSURL *url = [NSURL URLWithString:@"https://www.twok.com"]; // 웹뷰 로드 주소 정의
NSURLRequest *request = [NSURLRequest requestWithURL:url]; // NSURLRequest 정의
[self.webView loadRequest:request]; // 웹뷰 로드 수행 실시
}
#pragma mark - UIScrollViewDelegate
// [스크롤 중 이벤트]
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
NSLog(@"WebViewController :: 스크롤 중 :: %f", scrollView.contentOffset.y);
}
// [스크롤 시작 이벤트]
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
NSLog(@"WebViewController :: 스크롤 시작");
}
// [스크롤 멈춤 이벤트]
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
NSLog(@"WebViewController :: 스크롤 멈춤");
}
@end
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
[Ios/Swift] A_Main - 웹뷰 로드 화면 관련 클래스 정리
https://blog.naver.com/kkh0977/222686770495
// --------------------------------------------------------------------------------------
반응형