В настоящее время я создаю приложение, которое использует специальный контейнер View Controller. Несколько видов одновременно отображаются на экране, и когда один из них используется, выбранный контроллер просмотра анимируется в полноэкранном режиме. При этом выбранные контроллеры представлений также рассматривают масштаб (кадр, размер шрифта и т.д.). Хотя свойство шрифта UILabel не является анимированным, что приводит к проблемам. Я попробовал несколько решений, но все плоские сосать.
Решения, которые я пробовал, следующие:
- Сделайте снимок экрана большего размера и анимируйте изменения (подобно тому, как работает Flipboard)
- Анимация с использованием свойства transform
- Уменьшение UIScrollView и масштабирование его при вводе на полный экран.
- Настройка настраиваетFontSizeToFitWidth на YES и устанавливает fontSize перед анимацией
Один из них был лучшим решением, но я не удовлетворен этим.
Я ищу другие предложения, если у кого-либо есть или UILabel-подстановка, которая анимирует плавно, используя [UIView animate..].
Вот хороший пример, который похож на то, что я хотел бы, чтобы мой UILabel сделал: http://www.cocoawithlove.com/2010/09/zoomingviewcontroller-to-animate-uiview.html
EDIT: этот код работает
// Load View
self.label = [[UILabel alloc] init];
self.label.text = @"TEXT";
self.label.font = [UIFont boldSystemFontOfSize:20.0];
self.label.backgroundColor = [UIColor clearColor];
[self.label sizeToFit];
[self.view addSubview:self.label];
// Animation
self.label.font = [UIFont boldSystemFontOfSize:80.0];
self.label.transform = CGAffineTransformScale(self.label.transform, .25, .25);
[self.label sizeToFit];
[UIView animateWithDuration:1.0 animations:^{
self.label.transform = CGAffineTransformScale(self.label.transform, 4.0, 4.0);
self.label.center = self.view.center;
} completion:^(BOOL finished) {
self.label.font = [UIFont boldSystemFontOfSize:80.0];
self.label.transform = CGAffineTransformScale(self.label.transform, 1.0, 1.0);
[self.label sizeToFit];
}];