모바일 프로그래밍/IOS참고자료

[Error] UIWebView 하단에 선이 생기는 이슈

Dannian 2023. 4. 25. 11:55
반응형

이번 이슈는 좀 어이가 없던 이슈인데요... iPhone 14 이후 단말에서 갑자기 특정 앱의 WebView 하단에 검정 실선이 생기면서 반복해서 들어가면 점점 커지는 현상이 있다는 내용이 전달되어 문제를 확인하게 되었습니다.

WKWebView도 아니고 왜 아직도 UIWebView를 쓰냐고 하신다면... 이거 리팩토링 하는 순간 다른 작업 올 스톱이라 어쩔 수가 없네요.ㅠ

여튼! 다음 이미지와 같은 현상이 발생하는 것이 문제였는데요, 특히 해당 실선이 커진다는게 문제였습니다.

하단에 붉은 사각형으로 감싸져있는 부분이 문제의 부분인데, 커지는 이슈는 해당 ViewController가 지워지지 않고 매번 재사용되기 때문인 것으로 확인되었습니다.

그렇다면 무엇 때문에 생기는지만 알면 해결이 될텐데, 이유는 정말 어이없게도 UIWebView의 높이가 소숫점이라서 생기는 문제였습니다.

기존 Storyboard 상 제약조건 값은 상단, 하단, WebView 이렇게 크게 3부분이었는데, Dynamic island가 생긴 디바이스에서 webview의 사이즈가 소수점으로 표기되는 중이었습니다.

WebView의 전체 높이를 구하고, 그 중 소숫점 아래가 존재하는 경우 그 값 만큼 WebView Bottom Constraint에 값을 줘서 높이가 딱 떨어지도록 하여 문제를 해결했습니다.

설마 이거겠어 했다가 뻘짓만 많이 했네요 하...

일부 검색 결과에서는 webView.opaque = NO; 를 넣어주라고 하는데, 재사용되지 않고 한 번만 불러주는 WebView라면 이것도 방법이겠지만, 문제가 발생한 프로젝트의 WebView에 적용하기에는 근본적인 해결책이 되지 않는다고 판단했기 때문에 넣어주지 않았습니다.

반응형