2015-06-28 3 views
0

Спасибо за чтение.UIButton не доступен для просмотра под UIImageView (swift)

Моя программа добавляет UIImageViews при нажатии внутри UICollectionViewCell. После добавления изображения существует отдельный статический набор UIButton для удаления любых изображений, которые пересекают кнопку. Код удаления работает нормально, но проблема в том, что кнопка не может быть нажата под программно добавленным UIImageView. (Если я нажимаю на части кнопки, которая не покрывается UIImageView, функция кнопки вызывается и образ (ы) правильно удалены.)

Edit: переместить добавленные взгляды изображения вокруг используя 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; Как сделать UIButton всегда интерактивным, даже если он скрыт под UIImageView?

ответ

1

На вашем изображении, установите userInteractionEnabled на false, и через него пройдут штрихи.

+0

Спасибо за ваш ответ. Возможно, я был недостаточно ясен. Я перемещаю изображение вокруг, используя функцию руля, так что это сделает изображения неподвижными? Я попробую. – cadari

Смежные вопросы