Я пытаюсь создать UILabel.
Но я хочу анимировать, когда появляется этот ярлык
где я должен анимировать ярлык ??
Вот мой код
static func setupView(view: UIView){
let networkStatusView = UILabel(frame: CGRect(x: 0, y: 40, width: view.bounds.width, height:50))
networkStatusView.tag = 20
networkStatusView.text = "offline"
networkStatusView.font = UIFont.boldSystemFont(ofSize: 18)
networkStatusView.translatesAutoresizingMaskIntoConstraints = false
networkStatusView.textAlignment = .center
networkStatusView.backgroundColor=UIColor.green
networkStatusView.layer.borderColor = UIColor.white.cgColor
UIView.animate(withDuration: 0.5) {
view.addSubview(networkStatusView)
}
view.layoutIfNeeded()
}





Функция addSubview не анимируется. Предполагая, что вам нужен эффект затухания, вы должны изменить последние 4 строки на:
view.addSubview(networkStatusView)
networkStatusView.alpha = 0.0
UIView.animate(withDuration: 0.5) {
networkStatusView.alpha = 1.0
view.layoutIfNeeded()
}
Надеюсь это поможет
Просто чтобы это было похоже на падение с вершины
Дайте начальную высоту для просмотра: 0
и анимировать его как:
view.addSubview(networkStatusView)
UIView.animate(withDuration: 0.5) {
networkStatusView.frame.size.height = 50
view.layoutIfNeeded()
}
Чтобы помочь визуализировать, как работает UIView.animate;
Подумайте о состоянии вашего UILabel перед вызовом метода UIView.animate. Например, на основе ответ qtngonetworkStatusView будет подвидом для текущего представления ViewController и не будет виден, так как альфа установлена на 0.
Теперь с анимационным блоком:
UIView.animate(withDuration: 0.5) { networkStatusView.alpha = 1.0 view.layoutIfNeeded() }
Разработчик говорит системе анимировать networkStatusView в течение следующих 0,5 секунд и изменить альфа-канал представления с 0 на 1,0, что делает его видимым.
Надеюсь это поможет.
Я проголосовал, но установка
alphaотносится к анимированному закрытию. ОднакоlayoutIfNeededэтого не делает. Предположительно, он хочет скрыть егоalpha, но не анимировать его до конечного местоположения.