Мне удалось остановить мой UIView, выходящий за пределы контейнера, с помощью жесты панорамы, но я изо всех сил пытаюсь остановить его по краям. В настоящее время он подходит к последнему краю пикселя, а не к краю перемещаемого вида.Остановка контейнера UIView с UIPanGesture?
Я попытался изменить значение фрейма, которое, как я думаю, подходит, но не может привести к правильным результатам. Не знаете, насколько близко у меня есть или есть более простой способ?
Как бы я остановил его по краям подвижного вида вместо последнего пикселя?
//Container is self.sliderContainer
//Green Block is sender.view which has a UIGesture applied
var location = sender.locationInView(self.view)
var newFrame = CGRectMake(0, 0, self.sliderContainer.frame.width, self.sliderContainer.frame.height)
let obstacleViewFrame = self.view.convertRect(self.sliderContainer.frame, fromView: self.sliderContainer.superview)
// Check if the touch is inside the obstacle view
if CGRectContainsPoint(obstacleViewFrame, location) {
sender.view!.center.x = sender.view!.center.x + translation.x
sender.setTranslation(CGPointZero, inView: self.view)
}
Не могли бы вы добавить лучшее изображение? Что именно движется и где вы хотите его остановить? Какова ваша иерархия взглядов? – Sulthan
Gif и больше кода помогут – Esqarrouth
@Sulthan Я обновил pic для вас – Allreadyhome