Подтвердить что ты не робот

Список примеров того, как "кратко привлечь внимание" к объекту на экране в iOS?

В iOS, как один кратко привлечь внимание к объекту на экране? Предположим, создать кратковременное свечение или вызвать появление тени и затем исчезнуть?

Для целей этого вопроса давайте определим "объект на экране" как экземпляр UIImageView.

Кроме того, если возможно, дайте пример того, как привлечь внимание к кнопке.

4b9b3361

Ответ 1

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.1f];
yourView.transform = CGAffineTransformMakeScale(1.1, 1.1);
[UIView commitAnimations];

Или, конечно, одно и то же с блочной анимацией. И после того, как внимание ушло с вашего взгляда, вы можете использовать:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.1f];
yourView.transform = CGAffineTransformIdentity;
[UIView commitAnimations];

Ответ 2

Большинство людей перечисляют код, но я придерживаюсь описания некоторых примеров;

  • Я видел, что объекты ненадолго растут и сжимаются до их нормального размера, чтобы привлечь внимание.
  • Bejeweled (игра Popcap) позволяет бриллиантам ненадолго "сиять" (как если бы солнечный свет проходил над ним), чтобы дать вам тонкий намек.
  • Я видел, как некоторые приложения используют короткую руку или фиктивную точку символа для некоторого объекта

И, конечно же, вы всегда можете представить скрепку, чтобы рассказать вам, что. enter image description here

Ответ 3

Вот простая анимация хопа...

- (void)drawAttn
{
float jumpHeight = 20.0;

CGPoint originalPoint = objectForAttn.center;
CGPoint jumpPoint = CGPointMake(objectForAttn.center.x, objectForAttn.center.y - jumpHeight);
    [UIView animateWithDuration:0.20 delay:0.0 options:UIViewAnimationOptionAutoreverse animations:^{
        [objectForAttn setCenter:jumpPoint];

    } completion:^(BOOL finished) {
        /* do other stuff after hop */
    }];
}

Ответ 4

Мое приложение QCount (бесплатно в магазине, коснитесь "неправильного" номера 3 раза) использует анимацию затухания следующим образом:

(заметьте, я написал это, когда я был ДЕЙСТВИТЕЛЬНО новичком в iOS, поэтому, возможно, есть более компактный способ его записи)

    aLabel = // a UILabel I get from somewhere
    aColor = aLabel.backgroundColor;
    [UIView animateWithDuration:0.2
                          delay: 0.0
                        options: UIViewAnimationOptionCurveEaseOut
                     animations:^{
                         aLabel.alpha = 0.0;
                     }
                     completion:^(BOOL finished){
                         // Wait .2 seconds and then fade in the view
                         [UIView animateWithDuration:.2
                                               delay: 0.0
                                             options:UIViewAnimationOptionCurveEaseIn
                                          animations:^{
                                                    aLabel.alpha = 1.0;
                                          }
                                          completion:nil];
                     }];

Ответ 5

Существует множество вариантов: прыжки, подчеркивание, вибрация, мигание, поворот, масштабирование, торможение вокруг и их комбинации.

Но IMO, эффект сияния на тексте "слайд для разблокировки" отлично.

Вы можете проверить это здесь: iPhone "слайд для разблокировки" анимация

Ответ 6

Я хотел обратить внимание на ярлык, значение которого изменилось. Эта простая анимация создает приятную анимацию "Я изменил"...

    //copy the label
    UILabel *newPageLabel = [[UILabel alloc] initWithFrame:_countLabel.frame];
    [newPageLabel setFrame:CGRectOffset(newPageLabel.frame, 0, 0)];
    newPageLabel.text = _countLabel.text;
    newPageLabel.textAlignment = _countLabel.textAlignment;
    newPageLabel.backgroundColor = _countLabel.backgroundColor;
    newPageLabel.textColor = _countLabel.textColor;
    newPageLabel.font = _countLabel.font;

    //scale and fade out the copied label
    [self.navigationController.toolbar addSubview:newPageLabel];
    [UIView animateWithDuration:0.5
                          delay:0.0
                        options:UIViewAnimationOptionLayoutSubviews
                     animations:^{
                         newPageLabel.transform = CGAffineTransformMakeScale(2,2);
                         newPageLabel.alpha = 0;
                     }
                     completion:^(BOOL finished){
                         [newPageLabel removeFromSuperview];
                     }
     ];