             }
         }
     }
+
+    override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView? {
+        if let hitView = super.hitTest(point, withEvent: event) {
+            return hitView
+        }
+
+        // If the hit test failed, offset it by moving it up and try again.
+        var fuzzPoint = point
+        fuzzPoint.y -= 20
+        if let hitView = super.hitTest(fuzzPoint, withEvent: event) {
+            return hitView
+        }
+
+        // If the hit test failed, offset it by moving it down and try again.
+        fuzzPoint = point
+        fuzzPoint.y += 20
+        if let hitView = super.hitTest(fuzzPoint, withEvent: event) {
+            return hitView
+        }
+
+        return nil
+    }
 }
 
 private class ReaderModeButton: UIButton {


    private func makeConstraints() {
        let container = self
        let padding = UIEdgeInsetsMake(4, 8, 4, 8)

        lockImageView.snp_remakeConstraints { make in
            make.centerY.equalTo(container).centerY

    override init(frame: CGRect) {
        super.init(frame: frame)
        self.backgroundColor = UIColor.whiteColor()
        self.layer.cornerRadius = 5

        lockImageView = UIImageView(image: UIImage(named: "lock_verified.png"))
