webView를 기반으로 간단한보기를 만들고 있습니다. 을 viewDidLoad
에 간단하게 호출하고 싶었지만 제대로 작동하지 않았습니다. 내가 원했던 견해는 괜찮 았지만, 이미 크기가 조정 된 상태의 뷰가 크기가 조정되고 늘어났습니다. 이는 내가 피하고 싶었던 것입니다. 이것이로드 된 컨텐츠가 화면보다 더 넓은 지 확인하는 이유입니다.Swift에서 다른 라이프 사이클 순간에 scalePagesToFit을 적용하는 방법은 무엇입니까?
private var needsResize: Bool = false {
didSet {
if self.needsResize == true {
self.webView.scalesPageToFit = true
} else {
self.webView.scalesPageToFit = false
}}}
override func viewDidLoad() {
super.viewDidLoad()
webView.delegate = self
self.webView.scrollView.maximumZoomScale = 20
self.webView.scrollView.minimumZoomScale = 0.5
(...)
}
func webViewDidFinishLoad(webView: UIWebView) {
let scrollWidth = self.webView.scrollView.contentSize.width
let screenSize: CGRect = UIScreen.mainScreen().bounds
let screenWidght = screenSize.width
if scrollWidth > screenWidght {
self.needsResize = true
}
}
가장 큰 문제는 수명주기가 여기에서 유리하게 작용하지 않는다는 것입니다. viewWillAppear
직전과 viewDidLoad
이후의 내용을 측정 할 수 있습니다. scalesPagesToFit
이 작동하지 않아 주로 viewWillAppear
또는 viewDidAppear
에 넣으려고했으나 작동하지 않는 것 같습니다. 유일하게 작동하는 so-so 솔루션은 didSet
에 viewDidLoad
을 넣었습니다. 그러나 그것이 작동하는 방식을 추측 할 수 있습니다. 전체 화면이 화면보다 더 넓은 내용에 대해 깜박이고 다시로드됩니다. 저에게 어떤 아이디어 나 힌트가 있습니까?