2015-06-28 54 views
0

感谢您的阅读。UIButton在UIImageView下无法点击(swift)

我的程序在点击UICollectionViewCell时添加了UIImageViews。一旦添加图像,就会有一个单独的静态UIButton设置,用于删除与按钮相交的任何图像。删除代码工作正常,但问题是该按钮不能在可编程添加的UIImageView下单击。 (如果我点击了未被UIImageView覆盖的那部分按钮,调用该按钮的功能并且图像被正确删除。)

编辑:我将添加的图像视图使用UIGestureRecognizer和句柄函数进行屏幕显示。

我试过view.bringSubviewToFront(UIButton)。这样做后,按钮工作正常,但现在按钮是在UIImageView,所以我不能移动按钮外的图像。

编辑2:我发现了一种解决方法,它将所有按钮功能放在一起,并在图像的视图与平移手势结束时的按钮视图相交时简单地删除图像。

//I added this code to the end of the handlepan function (and made a function calleddeleteimage which performs the actions of delete image):

if recognizer.state == UIGestureRecognizerState.Ended { 
     calleddeleteimage() 
     } 

//这里是我的UIPanGestureRecognizer并为UIButton的原代码:

func handlepan(recognizer: UIPanGestureRecognizer) { let movingview = recognizer.view! let translation = recognizer.translationInView(recognizer.view) view.bringSubviewToFront(movingview) movingview.center = CGPoint(x: movingview.center.x + translation.x, y: movingview.center.y + translation.y) recognizer.setTranslation(CGPointZero, inView: recognizer.view) view.bringSubviewToFront(hungryman) } @IBOutlet weak var hungryman: UIButton! @IBAction func deleteimage(sender: AnyObject) { var count = 0 indexestodelete = [] for i in unlockeddisplaying { if i.frame.intersects(hungryman.frame) { i.removeFromSuperview() indexestodelete.append(count) } count = count + 1 } count = 0 for i in indexestodelete { unlockeddisplaying.removeAtIndex(i - count) unlockeddisplayingtypes.removeAtIndex(i - count) count = count + 1 } }

谢谢!

TL; DR:如何使UIButton始终可点击,即使隐藏在UIImageView下?

回答

1

在您的图像视图上,将userInteractionEnabled设置为false,触摸将通过它。

+0

感谢您的回复。也许我还不够清楚。我使用手柄功能移动图像视图,这样会不会使图像无法移动?我会试一试。 – cadari