Как я могу добиться такого типа представления, используемого в приложении Wunderlist для iOS?

#ios #swift #interface-builder

#iOS #swift #конструктор интерфейса

Вопрос:

Как я могу создать типы представлений, которые перемещаются вверх от нижней части экрана, как показано на рисунке ниже? Это встроенный тип представления или что-то пользовательское?

Снимки экрана взяты из приложений Wunderlist и списка хитов для iOS соответственно.

Ответ №1:

Просто взглянул на список посещений там. Похоже, что они просто анимируют представление снизу вверх.

Я бы сделал это, создав UIView , назовем это slidingView . Вы можете сделать это в существующей раскадровке или создать для нее новый файл .xib. Затем, когда вы вызываете свой viewDidLoad контроллер представления, в котором это slidingView будет содержаться, переместите slidingView представление за пределы экрана и анимируйте его, когда захотите.

Пример:

 import UIKit

class ViewController: UIViewController {

    private struct Constants {

        static let animationDuration: TimeInterval = 0.3
        static let marginFromTop: CGFloat = 32.0

    }

    @IBOutlet private weak var slidingView: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()

        moveSlidingViewOffScreen()
    }

    // MARK: - Actions

    @IBAction func buttonTap(_ sender: UIButton) {
        UIView.animate(withDuration: Constants.animationDuration) {
            self.slidingView.frame.origin.y = Constants.marginFromTop
        }
    }

    // MARK: - Private functions

    private func setupSlidingViewOffScreen() {
        slidingView.frame.origin.y = view.frame.height
    }

}

  

Комментарии:

1. Спасибо, я смог заставить это работать. Однако по какой-то причине оно кажется прозрачным.

2. sllidingView То, в чем вы анимируете, прозрачно? Как вы это настроили? Раскадровка или код?

3. У меня было неправильное распределение слоев, и оно заработало. 🙂 Спасибо за ответ!