Показаны сообщения с ярлыком Animation. Показать все сообщения
Показаны сообщения с ярлыком Animation. Показать все сообщения

7 февр. 2016 г.

SAConfettiView дождь из конфети / rain of confetti



SAConfettiView - позволяет добавить в ваше приложение представление с дождем из конфети, цветных треугольников, звездочек, кристаллов или ваших собственных изображений.

SAConfettiView is the easiest way to add fun, multi-colored confetti to your application and make users feel rewarded. Written in Swift, SAConfettiView is a subclass of UIView and is highly customizable. From various types and colors of confetti to different levels of intensity, you can make the confetti as fancy as you want.

15 окт. 2015 г.

Raywenderlich iOS Animations by Tutorials Second Edition: iOS 9 & Swift 2 Edition


Год выпуска: 2015
Автор: Marin Todorov
Жанр: Разработка
Издательство: Raywenderlich
Язык: Английский
Серия: Tutorials
ISBN: 978-1942878094
Формат: PDF
Качество: eBook (изначально компьютерное)
Количество страниц: 370

Описание: Программируйте приложения на Swift под iOS с восхитительной анимацией! Создание анимации является одним из самых приятных направлений развития iOS. Создавать анимацию весело, она вдохнула жизнь в пользовательский интерфейс iOS, также анимация делает ваше приложение красочным и приводит в восторг конечного пользователя. В этой книге, вы узнаете о применении анимации в Swift на iOS, от начального уровня до продвинутого через серию практических уроков.

Обновлено до iOS9, Xcode 7 и Swift 2.

С исходными кодами / With source code

4 авг. 2015 г.

Анимация placeholder`a в Textfield / Textfield placeholder animation (UIFloatLabelTextField)


            In 2013, Matt D. Smith unveiled the Float Label user interface design pattern. In short, it retains a text field's placeholder above said text field as a floating label. This label is brightly colored when the field is active, and dimly colored when a user has finished editing that field.

1. - На storyboard добавляем и кастомизируем на свой вкус UITextField

2. - Добавляем в проект класс UIFloatLabelTextField

3. - Помечаем наши UITextField и в Identity Inspector прописываем им использовать кастомный класс вместо стандартного

4. - Делаем связку наших UITextField с кодом, задаем плейсхолдерам цвет и юзаем в удовольствие.


Download from Github / Загрузить с Github

24 мая 2015 г.

UITextField анимация / UITextField animation

Каждому из нас очень часто приходится (например в окне ввода логина / пароля) сдвигать поля ввода чтобы клавиатура не перекрывала их и пользователь видел то что он вводит. Для сдвига с места обычно достаточно простой анимации, но мы как всегда - сделаем это красиво ;)

Представим что у нас на вьюхе есть три UITextField.  Создадим массив и добавим эти UITextField в него. UITextField уже размещены в нужных нам местах. Теперь при тапе на один из них (любой) появится клавиатура которая естественно перекроет UITextField (во многих ситуациях именно так и есть, особенно на iPad при Landscape ориентации устройства. Сдвигаем:

CGAffineTransform textFieldTranslationTransform;
textFieldTranslationTransform = CGAffineTransformMakeTranslation(0, -165);

Важно помнить, что место с которого будет передвигаться UITextField - центр равен 0. Когда элементы станут на новое место, центр каждого элемента станет опять 0. Чтобы опять поставить на место, вместо "-165" ставим "165". Т.е. цифры говорят о том, что мы передвинули не В координату, а НА определенное количество пунктов.

[_textFieldsArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
            
            UITextField *tField = (UITextField *)obj;
            
            [UIView animateWithDuration:0.9
                                  delay:0.05 * (double)idx
                 usingSpringWithDamping:0.5
                  initialSpringVelocity:0
                                options:UIViewAnimationOptionCurveLinear
                             animations:^{                     
                                 tField.center = CGPointApplyAffineTransform(tField.center,                                                                           textFieldTranslationTransform);
                             }
                             completion:nil];
        }];

5 мая 2015 г.

UINavigationBar анимация сокрытия-показа / UINavigationBar hide-show animation

Иногда необходимо немного больше места на экране для отображения более детального и большего количества информации. Обычно при этом прячут UINavigationBar. Почему бы это не сделать при помощи анимации:





- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [self.navigationController.navigationBar lt_reset];
}

#pragma mark - UINavigationBar hide/show animation methods

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGFloat offsetY = scrollView.contentOffset.y;
    if (offsetY > 0) {
        if (offsetY >= 44) {
            [self setNavigationBarTransformProgress:1];
        } else {
            [self setNavigationBarTransformProgress:(offsetY / 44)];
        }
    } else {
        [self setNavigationBarTransformProgress:0];
        self.navigationController.navigationBar.backIndicatorImage = [UIImage new];
    }
}

- (void)setNavigationBarTransformProgress:(CGFloat)progress
{
    [self.navigationController.navigationBar lt_setTranslationY:(-44 * progress)];
    [self.navigationController.navigationBar lt_setContentAlpha:(1-progress)];
}

24 мар. 2015 г.

UIButton popup анимация / UIButton popup animation

Анимация кнопки (UIButton) по клику или без. Также можно анимировать любой другой контрол.








button.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.001, 0.001);
    [self.view addSubview:button];
    
    [UIView animateWithDuration:0.4/1.5 animations:^{
        button.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.3, 1.3);
    } completion:^(BOOL finished) {
        [UIView animateWithDuration:0.4/2 animations:^{
            button.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.8, 0.8);
        } completion:^(BOOL finished) {
            [UIView animateWithDuration:0.4/2 animations:^{
                button.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.1, 1.1);
            } completion:^(BOOL finished) {
                [UIView animateWithDuration:0.4/2 animations:^{
                    button.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.0, 1.0);
                } completion:^(BOOL finished) {
                    button.transform = CGAffineTransformIdentity;
                }];
            }];
        }];

    }];