2010-07-27 1 views
1

Я прочитал, что я могу использовать объект аниматора в любом UIView сделать анимацию, и это входит в Core Animation, так что я написалКак использовать аниматора в UILabel

[[label animator] setFrame:someRect]; 

Но он дал предупреждение что UILabel может не реагировать на -animator

Также я могу найти метод [label setWantsLayer:YES];

ли кто-нибудь мне помочь, пожалуйста?

ответ

2
UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectZero]; 
[self.containerView addSubview:myLabel]; 

CGRect destination = CGRectMake(5, 5, 100, 100); //for instance 

[UIView beginAnimations:@"animationIdentifierString" context:nil]; 
myLabel.frame = destination; 
[UIView setAnimationDuration:0.5f]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; //that's the default, actually, but set whatever you want there. 
[UIView commitAnimations]; 

Я просто набрал это право здесь, поэтому остерегайтесь опечаток. Но это идея. Оберните изменения в подклассы UIView при вызове [UIView beginAnimations: context:] и [UIView commitAnimations], установите некоторые конфигурации в анимации внутри и бум, вы анимируете.

Есть и другие способы сделать это, но для моих денег это самое простое.

Путь более подробно в описании класса UIView по адресу http://developer.apple.com/iphone/library/documentation/uikit/reference/UIView_Class/UIView/UIView.html

5

-animator и -setWantsLayer: методы из какао (OS X), а не какао-touch (iOS). По умолчанию объекты UIKit поддерживаются слоями.

Смежные вопросы