[英]IOS: animation with UIImageView
我有两个imageViews分别称为firstView和secondView; 我必须做一个动画来移动我称为imageView3的第三个imageView。 此imageView3在firstView内部,我执行此代码
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[imageView3 setFrame:frameinSecondView];
[UIView commitAnimations];
//[imageView3 removeFromSuperview];
//[secondView addSubview:imageView3];
使用此代码,我可以将imageView3移至secondView,但是问题是我无法在正确的帧“ frameinSeconView”中设置imageView3; 相反,如果我使用注释的代码
[imageToMove removeFromSuperview];
[scrollViewAlfabeto addSubview:imageToMove];
imageView3可以在正确的帧上播放,但是我看不到动画,因为当动画开始播放时,imageview3从firstView广告中消失了,并在secondView上显示
如何解决具有正确的动画,在这两个imageViews之间具有正确的帧。
您正在尝试将imageView3从1传递到2,对吗? 从imageView1中将其删除,并将其放置在windowView上,从1到2进行动画处理,然后等待结束动画以从windowView中删除并插入imageView2
如何等待 ? ...好吧,有一个[句子的东西]结构可以做到这一点,但是我不知道是怎么回事,而不是那样(因为我从来没有找到过)我开始使用“动画块”:D
什么是动画块? 块:表示动作的对象; 以下是使用块对象block1,block2(CODE PARTC)的动画示例
[UIView animateWithDuration:2 delay:0
options:UIViewAnimationCurveEaseIn
animations: block1
completion: block2
];
这意味着它将执行block1中定义的动作,就好像它们在begin-commit动画语句中一样,并且(在其漂亮部分之后)它们将在block2中执行这些动作! :D!
但是什么是f ---- ng块? 好吧...这是一个F ---- NG块!:
返回void的块(CODE PARTA):
void (^block1)(void) = ^{
centerPortrait.frame = frame1;
if (lookingMenu==NO)
listTableView.frame = frameT1;
};
返回BOOL的块(完成后:您需要一个bool),并且其中包含另一个动画(CODE PARTB)
void (^block2)(BOOL) = ^(BOOL got){
[UIView animateWithDuration:halfDuration delay:0
options:UIViewAnimationCurveEaseIn
animations:^{
centerPortrait.image = image;
centerPortrait.frame = frame2;
if (lookingMenu==YES)
listTableView.frame = frameT2;
}
completion:nil
];
};
我用它来伪造图像的旋转hohohoho无论如何,如果您没有,命令是PARTA,B,C:P
请阅读以下内容: http : //developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Blocks/Articles/bxGettingStarted.html%23//apple_ref/doc/uid/TP40007502-CH7-SW1
这是我获得如何使用块的地方:D,这是伟大的RAYWENDERLICH的有用教程: http ://www.raywenderlich.com/2454/how-to-use-uiview-animation-tutorial
希望能帮助到你!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.