#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. У меня было неправильное распределение слоев, и оно заработало. 🙂 Спасибо за ответ!