Skip to content

Commit 764891a

Browse files
committed
added delegate protocol
1 parent 50e8827 commit 764891a

1 file changed

Lines changed: 17 additions & 6 deletions

File tree

SCDomElementView/SCDomElementView.swift

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@
99
import UIKit
1010
import WebKit
1111

12+
public protocol SCDomElementViewDelegate {
13+
func domElementViewDidStartRequest(view: SCDomElementView)
14+
func domElementViewDidFinishRequest(view: SCDomElementView)
15+
func domElementView(view: SCDomElementView, DidFinishRequestWithError: NSError)
16+
}
17+
1218
public class SCDomElementView: UIView, WKNavigationDelegate, UIScrollViewDelegate {
1319

1420
public let webView: WKWebView = {
@@ -27,6 +33,8 @@ public class SCDomElementView: UIView, WKNavigationDelegate, UIScrollViewDelegat
2733
return webView
2834
}()
2935

36+
public var delegate: SCDomElementViewDelegate?
37+
3038
public override init(frame: CGRect) {
3139
super.init(frame: frame)
3240

@@ -40,20 +48,22 @@ public class SCDomElementView: UIView, WKNavigationDelegate, UIScrollViewDelegat
4048
}
4149

4250
private func configure() {
43-
backgroundColor = UIColor.redColor()
4451
webView.navigationDelegate = self
4552
webView.scrollView.delegate = self
4653
webView.scrollView.bounces = false
4754

4855
addSubview(webView)
49-
// scrollView.addSubview(webView)
5056
}
5157

5258
private func rectFromId(id: String, callback: (CGRect) -> ()) {
5359
var javascript = "function f(){ var r = document.getElementById('\(id)').getBoundingClientRect(); return '{{'+r.left+','+r.top+'},{'+r.width+','+r.height+'}}'; } f();";
5460

5561
webView.evaluateJavaScript(javascript) { result, error in
56-
if error != nil { return }
62+
if let error = error {
63+
self.delegate?.domElementView(self, DidFinishRequestWithError: error)
64+
65+
return
66+
}
5767

5868
if let result = result as? String {
5969
let rect = CGRectFromString(result)
@@ -64,9 +74,7 @@ public class SCDomElementView: UIView, WKNavigationDelegate, UIScrollViewDelegat
6474
}
6575

6676
public func loadRequest(request: NSURLRequest) {
67-
println("wat")
68-
println(request)
69-
println(webView)
77+
delegate?.domElementViewDidStartRequest(self)
7078
webView.loadRequest(request)
7179
}
7280

@@ -76,7 +84,10 @@ public class SCDomElementView: UIView, WKNavigationDelegate, UIScrollViewDelegat
7684
self.webView.scrollView.contentInset = UIEdgeInsets(top: -frame.origin.y, left: -frame.origin.x, bottom: (frame.origin.y + frame.size.height), right: (frame.origin.x + frame.size.width))
7785

7886
frame.origin = CGPointZero
87+
self.frame = frame
7988
self.webView.frame = frame
89+
90+
self.delegate?.domElementViewDidFinishRequest(self)
8091
}
8192
}
8293
}

0 commit comments

Comments
 (0)