【发布时间】:2016-01-06 01:42:34
【问题描述】:
我创建了一个带有 UIButton 类型子视图的 UIView。按钮的大小大于视图的大小。每当我触摸按钮时,只有与 superview 大小相同的部分才会响应触摸事件。我创建了一个视图层次结构图来向您展示我的意思:
只有按钮的红色部分会响应触摸事件。这是怎么回事,我该如何解决?
这是 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 是在故事板中创建的。
【问题讨论】:
-
嗯,这不是它的工作原理吗?由于您的按钮放置在 UIView 中,因此只有 UIView 中的区域才会接受触摸。
-
您的超级视图真的必须比按钮小吗?为什么?我不知道它应该如何工作,但这种行为并不让我感到惊讶。
-
如果还没有解决,“moveView”的框架是什么
-
moveView 是较低的绿色视图。它的大小比按钮的小