Ваша проблема со строкой ниже
imageView.frame = self.view.convert(self.coinsView.frame, from: self.coinsView.superview!)
Эта строка устанавливает тот же кадр от coinsView
до imageView
. И когда вы пытаетесь получить случайные точки x и y в приведенном ниже коде, он всегда возвращает 0. Потому что frame.size.width
и imageView.bounds.size.width
одинаковы и одинаковы для высоты.
let x = randomInRange(lo: 0, hi: Int(frame.size.width - imageView.bounds.size.width))
let y = randomInRange(lo: 0, hi: Int(frame.size.height - imageView.bounds.size.height))
Для лучшего понимания добавьте строку ниже к своему коду, чтобы установить imageView
Frame, вам нужно изначально установить stati c frame для вашего изображения.
imageView.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
Убедитесь, что ширина и высота должны быть меньше ширины и высоты МонетыПосмотреть ширину и высоту