Параметры внутри анимации начала и контекста

Я изучал начало анимации с помощью UIView, обычно в большинстве руководств всегда используется один и тот же синтаксис:

[UIView beginAnimations:nil context:NULL];

Я вижу в коде, что внутри beginAnimation мы можем поместить nsstring, а в контексте - функцию void, верно? Для этого я делаю вот что:

[UIView beginAnimations:@"Will Start" context:@selector(start)];

-(void)start{

NSLog(@"Animation Running");

}

Но строка nsstring 'will start' мне не показывалась, а функция void 'start' не вызывалась. Я не знаю, делаю ли я это неправильно, но что означают эти параметры BeginAnimation типа NSString и контекст типа типа void? Может ли кто-нибудь привести мне пример?


person user3781174    schedule 19.12.2014    source источник
comment
Вам даже не следует использовать этот метод. Вы, должно быть, просматриваете довольно старые уроки. Из документации Apple для beginAnimations: использование этого метода не рекомендуется в iOS 4.0 и более поздних версиях. Вместо этого вы должны использовать методы блочной анимации, чтобы указать свои анимации.   -  person rdelmar    schedule 20.12.2014


Ответы (1)


Похоже, вы не совсем понимаете, как работает метод beginAnimations:context:. Прежде всего, animationId - это NSString, который просто идентифицирует анимацию. Во-вторых, данные, которые вы передаете context, на самом деле являются любыми данными, которые вам нужны. Указатель на функцию, объект и т. Д.

Итак, что вы делаете после вызова [UIView beginAnimations:context:], так это отправляете различные сообщения setAnimation для установки свойств, меняете значения представления на значения (положение, цвет, альфа), которые вы в конечном итоге хотите получить, и, наконец, отправляете сообщение [UIView commitAnimations].

Хороший учебник, который объясняет это более подробно: здесь.

person Jadar    schedule 19.12.2014