我想这是非常基本的,但我想知道是否有一种简单的方法可以将整个NIB动画到屏幕上...来自右边。理想情况下,我希望它一旦停止就反弹(即如果NIB应该滚动到位置X = 0,我想在回到0之前略微消极)。
这是我到目前为止所做的:
[UIView animateWithDuration:0.5
delay:0
options:UIViewAnimationOptionCurveEaseIn
animations:^{
TabsEdit *tEdit = [[TabsEdit alloc] initWithNibName:@"TabsEdit" bundle:nil];
self.tabsEdit = tEdit;
[self.view addSubview:tEdit.view];
[tEdit release];
}
completion:^(BOOL finished){
}
是否有任何简单的解决方案或者我是否需要将NIB中的每个元素设置为视图,然后添加我的小反弹效果?
我很感激有关如何有效实现这一目标的任何建议。
答案 0 :(得分:1)
要获得更复杂的动画(如果你想要更多的段到bouce),你应该去CoreAnimation层并定义关键帧。否则有一系列嵌入式animateWithDuration / Completions,每个都执行反弹的不同部分。如果视图的所有元素都是子视图,那么在对视图进行动画处理时,其子视图将会跟随。
答案 1 :(得分:1)
一举重复反弹。
[UIView beginAnimations:@"move" context:nil];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:0.25];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
if(movingIn){
view.frame = CGRectMake(0.0f, view.frame.origin.x, .view.frame.size.width, view.frame.size.height);
}else{
view.frame = CGRectMake(320.0f, view.frame.origin.x, .view.frame.size.width, view.frame.size.height);
}
[UIView commitAnimations];