Как поменять кадры двух представлений, а также поменять их местами в иерархии представлений в swift? - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть два представления, скажем, view1 и view2 добавлены в суперпредставление. View1 находится спереди и имеет большую рамку, чем view2, которая находится сзади, верхняя часть view2 видна над view1, чтобы она выглядела как колода карт. Когда пользователь перемещает view1 по горизонтали, он должен go позади view2, а view2 должен быть впереди. Я не уверен, как этого добиться, мне нужно поменять местами две позиции и поменять их в иерархии видов в одной анимации. Любая помощь будет высоко ценится.

1 Ответ

1 голос
/ 25 февраля 2020

Попробуйте это:

if
    let firstIndex = view.subviews.firstIndex(of: firstView),
    let secondIndex = view.subviews.firstIndex(of: secondView)
{
    let firstViewFrame = firstView.frame
    UIView.animate(withDuration: 1, animations: {
        self.firstView.frame = self.secondView.frame
        self.secondView.frame = firstViewFrame
        self.view.exchangeSubview(at: firstIndex, withSubviewAt: secondIndex)
    })
}

Пример: https://drive.google.com/open?id=1jAUokRRuUNtFmmtI1sBVh_eMpf3gUylV

...