У меня есть метод генерации случайной позиции моего UIImageViews. Некоторые взгляды имеют пересечение с другими. Как я могу проверить эти пересечения? Может быть, записать позицию в некотором массиве? Примерно так -
self.randomArray.append(random)
for views in randomArray {
let rangeXmin = views.x - widthCoin / 2
let rangeXmax = views.x + widthCoin / 2
let rangeYmin = views.y - widthCoin / 2
let rangeYmax = views.y + widthCoin / 2
let rangeX = rangeXmin...rangeXmax
let rangeY = rangeYmin...rangeYmax
if rangeX.contains(randomX) || rangeY.contains(randomY) {
print("Intersection")
} else {
print("Not intersection")
}
}
// generate coin place in table
func generateCoinPlace() -> CGPoint {
let widthTableConstant = view.frame.width * 0.89
let heightTableConstant = widthTableConstant * 1.04
let minX = view.center.x - widthTableConstant / 2 + widthCoin / 4
let maxX = view.center.x + widthTableConstant / 2 - widthCoin / 4
let minY = tableImage.center.y - heightTableConstant / 2 + widthCoin / 4
let maxY = tableImage.center.y + heightTableConstant / 2 - widthCoin / 4
let randomX = CGFloat.random(in: minX..<maxX)
let randomY = CGFloat.random(in: minY..<maxY)
let random = CGPoint(x: randomX, y: randomY)
// Add array here
return random
}
Метод создания позиции на моем UIImageView // Анимация монеты забавы c flipTransition () {
var transitionOptions = UIView.AnimationOptions()
transitionOptions = [.transitionFlipFromTop, .showHideTransitionViews]
UIView.transition(with: activeCoin!, duration: 0.6, options: transitionOptions, animations: {
})
UIView.animate(withDuration: 0.7, delay: 0.2, options: [.curveEaseOut], animations: {
self.activeCoin!.center = self.generateCoinPlace()
self.coinSound()
}) { (_) in
}
UIView.animate(withDuration: 0.6, delay: 0.3, options: [], animations: {
self.activeCoin!.transform = CGAffineTransform(scaleX: 0.8, y: 0.8)
}) { [weak self] (_) in
self?.putCoinStart()
}
}
Спасибо за помощь.