Skip to content

Instantly share code, notes, and snippets.

@DonMag
Created January 16, 2018 20:31
Show Gist options
  • Select an option

  • Save DonMag/396161216fe4d1c2a254916f360a02ee to your computer and use it in GitHub Desktop.

Select an option

Save DonMag/396161216fe4d1c2a254916f360a02ee to your computer and use it in GitHub Desktop.
import UIKit
import PlaygroundSupport
class MyView: UIView {
override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
var f = bounds
f.origin.y -= 20
return f.contains(point)
}
}
class TestViewController : UIViewController {
let redButton: UIButton = {
let b = UIButton()
b.translatesAutoresizingMaskIntoConstraints = false
b.setTitle("Tap Me", for: .normal)
b.backgroundColor = .red
return b
}()
let testMyView: MyView = {
let v = MyView()
v.translatesAutoresizingMaskIntoConstraints = false
v.backgroundColor = .orange
return v
}()
let blueButton: UIButton = {
let b = UIButton()
b.translatesAutoresizingMaskIntoConstraints = false
b.setTitle("Tap Me", for: .normal)
b.backgroundColor = .blue
return b
}()
let normalView: UIView = {
let v = UIView()
v.translatesAutoresizingMaskIntoConstraints = false
v.backgroundColor = .green
return v
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(normalView)
normalView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
normalView.topAnchor.constraint(equalTo: view.topAnchor, constant: 80.0).isActive = true
normalView.widthAnchor.constraint(equalToConstant: 300).isActive = true
normalView.heightAnchor.constraint(equalToConstant: 200).isActive = true
normalView.addSubview(redButton)
redButton.addTarget(self, action: #selector(redTap(_:)), for: .touchUpInside)
redButton.centerXAnchor.constraint(equalTo: normalView.centerXAnchor).isActive = true
redButton.topAnchor.constraint(equalTo: normalView.topAnchor, constant: -20.0).isActive = true
view.addSubview(testMyView)
testMyView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
testMyView.topAnchor.constraint(equalTo: normalView.bottomAnchor, constant: 80.0).isActive = true
testMyView.widthAnchor.constraint(equalToConstant: 300).isActive = true
testMyView.heightAnchor.constraint(equalToConstant: 200).isActive = true
testMyView.addSubview(blueButton)
blueButton.addTarget(self, action: #selector(blueTap(_:)), for: .touchUpInside)
blueButton.centerXAnchor.constraint(equalTo: testMyView.centerXAnchor).isActive = true
blueButton.topAnchor.constraint(equalTo: testMyView.topAnchor, constant: -20.0).isActive = true
}
func redTap(_ sender: Any?) -> Void {
print("Red Tapped!")
}
func blueTap(_ sender: Any?) -> Void {
print("Blue Tapped!")
}
}
let vc = TestViewController()
vc.view.backgroundColor = .white
PlaygroundPage.current.liveView = vc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment