Я устанавливаю новое текстовое значение на UILabel
. В настоящее время новый текст отображается нормально. Однако я хотел бы добавить анимацию при появлении нового текста. Мне интересно, что я могу сделать, чтобы оживить появление нового текста.
ios
objective-c
ipad
uilabel
caanimation
Джу Пак
источник
источник
Ответы:
Интересно, работает ли он, и работает ли он отлично!
Objective-C
Свифт 3, 4, 5
источник
Objective-C
Для достижения истинного поперечного раствориться перехода (старый ярлык гаснуть в то время как новый лейбл выцветания), вы не хотите , чтобы замирание невидимым. Это может привести к нежелательному мерцанию, даже если текст не изменился .
Вместо этого используйте этот подход:
Также смотрите: Анимировать текст UILabel между двумя числами?
Демонстрация в iOS 10, 9, 8:
Протестировано с Xcode 8.2.1 и 7.1 , ObjectiveC на iOS с 10 по 8.0 .
► Чтобы загрузить проект полностью, найдите SO-3073520 в Swift Recipes .
источник
-addAnimation:forKey
для этой метки, а затем меняете текст метки.Swift 4
Правильный способ исчезновения UILabel (или любого другого UIView в этом отношении) - использовать файл
Core Animation Transition
. Он не будет мерцать и не станет черным, если содержимое не изменилось.Портативное и чистое решение - использовать
Extension
в Swift (вызывать предварительное изменение видимых элементов)Вызов выглядит так:
► Найдите это решение на GitHub и дополнительную информацию о Swift Recipes .
источник
MIT
лицензия гарантирует, что ваш Cocoapod может свободно использоваться всеми и всеми.начиная с iOS4, очевидно, что это можно сделать с помощью блоков:
источник
Вот код, чтобы это работало.
источник
Решение расширения UILabel
Просто вызывается функцией
Спасибо за все советы, ребята. Надеюсь, это поможет в долгосрочной перспективе
источник
Версия Swift 4.2 решения SwiftArchitect выше (отлично работает):
Призвание:
источник
Swift 2.0:
ИЛИ
источник
В Swift 5 вы можете выбрать один из двух следующих примеров кода Playground, чтобы анимировать изменения вашего
UILabel
текста с помощью некоторой анимации перекрестного растворения.# 1. Использование
UIView
«Stransition(with:duration:options:animations:completion:)
метод класса# 2. Использование
CATransition
иCALayer
«Sadd(_:forKey:)
методисточник
Решение Swift 4.2 (получение ответа 4.0 и обновление для компиляции новых перечислений)
источник
Системные значения по умолчанию 0,25 для
duration
и .curveEaseInEaseOut дляtimingFunction
часто предпочтительны для единообразия анимации, и их можно опустить:что то же самое, что написать это:
источник
Это метод расширения C # UIView, основанный на коде @ SwiftArchitect. Когда задействован автоматический макет и элементы управления необходимо перемещать в зависимости от текста метки, этот вызывающий код использует Superview метки в качестве представления перехода вместо самой метки. Я добавил лямбда-выражение для действия, чтобы сделать его более инкапсулированным.
Телефонный код:
источник
Если вы хотите сделать это
Swift
с опозданием, попробуйте следующее:используя следующую функцию, созданную @matt - https://stackoverflow.com/a/24318861/1982051 :
который станет этим в Swift 3
источник
Для этого есть еще одно решение. Это было описано здесь . Идея состоит в том, чтобы создать подкласс
UILabel
и переопределитьaction(for:forKey:)
функцию следующим образом:Примеры использования:
источник