我创建了一个带有 UIButton 类型 subview 的 UIView。按钮的尺寸大于 View 的尺寸。每当我触摸按钮时,只有与 superview 大小相同的部分才会响应触摸事件。我创建了一个 View 层次结构图来向您展示我的意思:
只有按钮的红色部分响应触摸事件。这是怎么回事,我该如何解决?
这是 viewDidLoad 中的代码,我在其中以编程方式创建按钮
let button = UIButton(frame: CGRectMake(-8, -8, 52, 52))
moveView.addSubview(button)
button.setBackgroundImage(UIImage(named: "trIcon"), forState: UIControlState.Normal)
button.adjustsImageWhenHighlighted = false
button.addTarget(self, action: "gogo", forControlEvents: UIControlEvents.TouchUpInside)
moveView.clipsToBounds = false
UIView 是在 Storyboard中创建的。
最佳答案
请按照我尝试编码时的说明进行操作
let button = UIButton(frame: CGRectMake(0, 0, giveValueLessthanMoveViewWidthSize, giveValueLessthanMoveViewHeightSize)) //Whatever give value less than your view size(x,y,width,height)
button.setBackgroundImage(UIImage(named: "trIcon"), forState: UIControlState.Normal)
button.adjustsImageWhenHighlighted = false
button.backgroundColor = UIColor.blueColor()
button.addTarget(self, action: "gogo:", forControlEvents: UIControlEvents.TouchUpInside)
moveView.clipsToBounds = false
moveView.addSubview(button)
然后按钮操作方法
func gogo(sender:UIButton!)
{
println("Button Clicked")
}
关于ios - UIButton 的一部分不响应触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33015715/