Я добавил 2 UIViews на свой экран, и я хочу определить, столкнулись ли они. Если да, тогда мне нужно показать предупреждение на экране.Обнаружение столкновения b/w двух объектов в Swift 3.0?
-1
A
ответ
0
// The Pan Gesture
func createPanGestureRecognizer(targetView: UIImageView)
{
var panGesture = UIPanGestureRecognizer(target: self, action:("handlePanGesture:"))
targetView.addGestureRecognizer(panGesture)
}
// THE HANDLE
func handlePanGesture(panGesture: UIPanGestureRecognizer) {
// get translation
var translation = panGesture.translationInView(view)
panGesture.setTranslation(CGPointZero, inView: view)
println(translation)
//create a new Label and give it the parameters of the old one
var label = panGesture.view as UIImageView
label.center = CGPoint(x: label.center.x+translation.x, y: label.center.y+translation.y)
label.multipleTouchEnabled = true
label.userInteractionEnabled = true
if panGesture.state == UIGestureRecognizerState.Began {
//add something you want to happen when the Label Panning has started
}
if panGesture.state == UIGestureRecognizerState.Ended {
//add something you want to happen when the Label Panning has ended
}
if panGesture.state == UIGestureRecognizerState.Changed {
//add something you want to happen when the Label Panning has been change (during the moving/panning)
}
else {
// or something when its not moving
}
}
2
Вы можете проверить, что 2 вида пересекаются, проверяя, пересекаются ли их рамки. Вот пример:
let view1 = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
let view2 = UIView(frame: CGRect(x: 90, y: 90, width: 50, height: 50))
extension UIView {
func intersects(_ otherView: UIView) -> Bool {
if self === otherView { return false }
return self.frame.intersects(otherView.frame)
}
}
print(view1.intersects(view2)) // Prints true because the 2 views are intersecting
Вы можете позвонить intersects(_:)
каждый раз при обновлении любого из ваших взглядов кадров (то есть изменить их размер и/или положение.). Если метод возвращает true
, покажите предупреждение, используя UIAlertController
.
4
насчет
if (CGRectIntersectsRect(secondView.frame, sender.frame)) {
// Do something
}
Смежные вопросы
- 1. Обнаружение столкновения двух UIView's в swift
- 2. обнаружение столкновения двух объектов в другой класс
- 3. Обнаружение столкновения на SpriteKit из двух объектов
- 4. ios swift обнаружение столкновения
- 5. Обнаружение столкновения SpriteKit Swift
- 6. Обнаружение направленного столкновения в Swift
- 7. Обнаружение столкновений, прерывающее другое обнаружение столкновения - Swift
- 8. Обнаружение столкновения между двумя объектами в Swift
- 9. Java объектов в массиве - обнаружение столкновения
- 10. Обнаружение столкновения в OpenGL
- 11. Обнаружение начального столкновения двух тел Box2D без непрерывного столкновения
- 12. SKPhysicsContactDelegate обнаружение столкновения с использованием Swift
- 13. Обнаружение столкновения Swift/SpriteKit между многими объектами
- 14. Обнаружение столкновения двух спрайтов, которые могут вращаться
- 15. День 1 обнаружение столкновения: swift 3
- 16. Box2D обнаружение одностороннего столкновения для круглых объектов
- 17. Fix обнаружение столкновения обнаружение
- 18. Явное обнаружение столкновения для быстро движущихся объектов
- 19. обнаружение столкновения в cocos2d
- 20. Обнаружение столкновения в строке
- 21. обнаружение столкновения, в libgdx
- 22. Обнаружение столкновения в Pygames
- 23. Обнаружение столкновения между CCSprite
- 24. Cocos2D - Обнаружение столкновения
- 25. Обнаружение столкновения с массивами в Java
- 26. Обнаружение столкновения при вращении
- 27. обнаружение столкновения Python
- 28. Как обнаружить столкновения двух объектов холста Tkinter
- 29. обнаружение столкновения JavaScript
- 30. Обнаружение столкновения 2D-группы