I want to make a custom view, that will contain the following:
This is my code which is inside a custom view:
func setup() {
// add green view
let greenView = UIView(frame: CGRectMake(0, 0, frame.size.width, frame.size.height))
greenView.backgroundColor = UIColor.greenColor()
greenView.userInteractionEnabled = true
addSubview(greenView)
// add first image
let image1 = UIImageView(frame: CGRectMake(0, 0, frame.size.width, frame.size.height))
image1.image = UIImage(named: "checked2")
image1.userInteractionEnabled = true
greenView.addSubview(image1)
// add white image
let whiteView = UIView(frame: CGRectMake(0, 0, frame.size.width, frame.size.height))
whiteView.backgroundColor = UIColor.yellowColor()
whiteView.userInteractionEnabled = true
greenView.addSubview(whiteView)
// add second image
let image2 = UIImageView(frame: CGRectMake(0, 0, frame.size.width, frame.size.height))
image2.image = UIImage(named: "checked")
image2.userInteractionEnabled = true
whiteView.addSubview(image2)
// add button
let button = UIButton(frame: CGRectMake(0, 0, frame.size.width, frame.size.height))
button.backgroundColor = UIColor.redColor()
button.addTarget(self, action: Selector("animation:"), forControlEvents: UIControlEvents.TouchUpInside)
button.userInteractionEnabled = true
addSubview(button)
}
func animation(button: UIButton) {
print("tapped")
}
The button, which is red appears on top, but the action is not called when clicking on it.
I tried to set userInteractionEnabled on all of the elements, but with no effect.
the code which you have posted is working fine, the problem is with the container view which holds all your views, maybe userInteractionEnabled is false for the container view.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With