From 440c30fdfa0118a30ebb1c880ab5cbf87edea15e Mon Sep 17 00:00:00 2001 From: Torsten Rosenstiel Date: Fri, 4 Aug 2017 18:32:11 +0200 Subject: [PATCH 1/4] Update button state also on change of URL or load --- Pod/Classes/PTPopupWebView.swift | 42 ++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/Pod/Classes/PTPopupWebView.swift b/Pod/Classes/PTPopupWebView.swift index aeb2624..e5ae5ef 100644 --- a/Pod/Classes/PTPopupWebView.swift +++ b/Pod/Classes/PTPopupWebView.swift @@ -359,7 +359,27 @@ open class PTPopupWebView : UIView { button.removeObserver(self, forKeyPath: "enabled") } } - + + fileprivate func updateButtonState() { + for i in 0 ..< buttonSettings.count { + let buttonSetting = buttonSettings[i] + switch buttonSetting.type { + case .back : + // To enable the Back button, when there is history. + buttons[i].isEnabled = webView.canGoBack + case .forward : + // To enable the Forward button, when there is advance history. + buttons[i].isEnabled = webView.canGoForward + case .reload : + // To enable the update button, after completion of reading. + buttons[i].isEnabled = webView.estimatedProgress == 1.0 + default: + break + } + } + } + + override open func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { if object is WKWebView { if let keyPath = keyPath { @@ -374,27 +394,13 @@ open class PTPopupWebView : UIView { } break; case "URL": + updateButtonState() break; case "load": + updateButtonState() break; case "estimatedProgress": - for i in 0 ..< buttonSettings.count { - let buttonSetting = buttonSettings[i] - switch buttonSetting.type { - case .back : - // To enable the Back button, when there is history. - buttons[i].isEnabled = webView.canGoBack - case .forward : - // To enable the Forward button, when there is advance history. - buttons[i].isEnabled = webView.canGoForward - case .reload : - // To enable the update button, after completion of reading. - if let change = change, let progress = change[NSKeyValueChangeKey.newKey] as? Double { - buttons[i].isEnabled = progress == 1.0 - } - default : break - } - } + updateButtonState() break; default: break From 9a09844574ae95a665bc5006e70bd85be9b9b4cf Mon Sep 17 00:00:00 2001 From: Torsten Rosenstiel Date: Tue, 16 Jan 2018 17:33:14 +0100 Subject: [PATCH 2/4] iPhone X, iOS 11 --- Pod/Classes/PTPopupWebViewController.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Pod/Classes/PTPopupWebViewController.swift b/Pod/Classes/PTPopupWebViewController.swift index b52e52e..582d3f0 100644 --- a/Pod/Classes/PTPopupWebViewController.swift +++ b/Pod/Classes/PTPopupWebViewController.swift @@ -95,9 +95,13 @@ open class PTPopupWebViewController : UIViewController { self.contentView.addSubview(popupView) popupView.translatesAutoresizingMaskIntoConstraints = false + var borderItem :Any = contentView + if #available(iOS 11, *) { + borderItem = contentView.safeAreaLayoutGuide + } for attribute in attributes { let constraint = NSLayoutConstraint( - item : contentView, attribute: attribute, relatedBy: NSLayoutRelation.equal, + item : borderItem, attribute: attribute, relatedBy: NSLayoutRelation.equal, toItem: popupView, attribute: attribute, multiplier: 1.0, constant: 0.0) contentView.addConstraint(constraint) constraints[attribute] = constraint From a34c17ae945ef73e1e6957cfae89d2b3dabb44a5 Mon Sep 17 00:00:00 2001 From: Torsten Rosenstiel Date: Tue, 16 Jan 2018 17:36:39 +0100 Subject: [PATCH 3/4] updated podspec --- PTPopupWebView.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PTPopupWebView.podspec b/PTPopupWebView.podspec index b20e467..6f39349 100644 --- a/PTPopupWebView.podspec +++ b/PTPopupWebView.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = "PTPopupWebView" - s.version = "0.4.0" + s.version = "0.4.1" s.summary = "Swift subclass of the UIView which provide Popup web view." s.homepage = "https://github.com/pjocprac/PTPopupWebView.git" s.license = 'MIT' From 3680b21e10d84dff19946f03f0fbe2d7c978934c Mon Sep 17 00:00:00 2001 From: Torsten Rosenstiel Date: Tue, 13 Mar 2018 09:51:56 +0100 Subject: [PATCH 4/4] @objc hinzugefuegt --- Pod/Classes/PTPopupWebView.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Pod/Classes/PTPopupWebView.swift b/Pod/Classes/PTPopupWebView.swift index e5ae5ef..f88aef5 100644 --- a/Pod/Classes/PTPopupWebView.swift +++ b/Pod/Classes/PTPopupWebView.swift @@ -475,7 +475,7 @@ open class PTPopupWebView : UIView { } /// Close popup view - open func close() { + @objc open func close() { if let delegate = delegate { // if delegate != nil (ex. when use PTPopupWebViewContoller) delegate.close() @@ -487,6 +487,7 @@ open class PTPopupWebView : UIView { } + @objc internal func buttonTapped (_ sender: AnyObject) { if let button = sender as? UIButton, let index = buttons.index(of: button) { if index < buttonSettings.count {