2016-08-01 50 views
0

好的,所以我有这些图像视图,我使用大量的代码来移动(这是我不想重写我的整个脚本移动UIButton的图像视图是子视图的原因 - 它会把所有东西搞砸)。Swift - 添加大于查看它被添加到的UIButton?需要更大的选择区域?

他们是小圆圈的位置:

bubble1.frame = CGRectMake(0, 0, screenSize.width*(21/330), screenSize.width*(21/330)) 
     bubble1.center = CGPointMake(lineView.bounds.width * 0.2, lineView.bounds.height * 0.98) //change when make smaller 
     bubble1.layer.cornerRadius = bubble1.bounds.width * 0.5 
     bubble1.backgroundColor = colorWithHexString(chosenColor) 
     bubble1.userInteractionEnabled = false 
     //bubble1.alpha = 0.0 

     let bubbleBtn1 = UITapGestureRecognizer(target:self, action:#selector(HistoryViewController.bubble1Tap(_:))) 
     bubble1.addGestureRecognizer(bubbleBtn1) 

正如你可以看到他们重视他们,所以当他们摸过的东西被触发tapgesturerecognizers。

这很适用,除非因为圆圈太小(它们需要很小),很难触发触摸 - 我已经四处寻找扩大识别器区域的方法,无济于事。

然后我尝试添加一个较大的70x70按钮作为我的图像视图的子视图,并且我知道添加了较大的按钮是因为我在圆圈上看到它是一个较大的正方形,但由于某种原因它只触发它的动作在哪里,底层bubble1是,渲染按钮无用。

如何让较大的按钮在更小的图像视图不触发时触发其操作?我看了Q像How to increase selection area of UIButton?,但这更适合这个问题,我的按钮不能在超视图区域外工作。

我该如何解决这个问题?

+0

添加'UIImageView'作为您的大UIButton的子视图。 –

+0

我不想这样做,因为如果我需要移动图像视图,我需要移动整个按钮,而这会对我造成问题。还有问题集中在按钮上的想象力 – skyguy

+0

在什么情况下你想要移动图像,但不是按钮? – PeejWeej

回答

1

我会建议去相反的方向,并创建一个包含按钮和bubble1作为子视图的视图。这就是UIView层次结构的工作原理,任何解决这些问题的解决方案都将变得脆弱并违背API的设计理念:)

要处理任何居中问题,只需将泡泡的中心设置为superView边界中心,理想情况下将与布局处理约束