有没有办法在点击 iPhone 按钮时制作自定义动画?我想要类似 App Store 按钮的东西 - 它会显示价格,然后当您单击它时,它会改变颜色并且文本会更改为“立即购买”,然后当您再次单击它时,它会完成购买。
UIViewAnimationTransition 仅包含一些不提供完整功能的值。是否可以用动画来做类似的事情:
- (IBAction) changeButtonDisplay:(id)sender {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.8];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:purchaseButton cache:NO]; //the built in UIViewAnimationTransition values don't provide enough flexibility
[purchaseButton setTitle:@"Buy Now" forState:UIControlStateNormal];
[purchaseButton setBackgroundColor:[UIColor greenColor]];
[purchaseButton addTarget:self action:@selector(purchaseItems:) forControlEvents:UIControlEventTouchUpInside];
[UIView commitAnimations];
}
此代码有效,将显示正确的过渡,并允许第二次单击执行正确的操作,但标题和颜色会立即更改,而不是平滑的动画。是否可以轻松地执行这样的动画,或者我是否必须创建 UIButton 子类并“手动”执行动画?如果是这样,我必须重写什么方法?
不仅仅是更改按钮的标题和目标等,而是有两个单独的按钮来执行每个操作并且看起来不同。然后,当您按下按钮时,调用一个方法,从其超级视图中删除当前按钮,并将新按钮添加到视图中的位置。将其包装在一些 UIView 动画块中,您应该得到您的动画。
此外,为了使其工作,您需要在按钮的超级视图上设置动画过渡。因此,拥有一个“容器视图”,然后将按钮添加为它的子视图可能会很方便。
伪代码可能看起来像这样:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.8];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:buttonConteinerView cache:NO]; //the built in UIViewAnimationTransition values don't provide enough flexibility
[purchaseButton retain];
[purchaseButton removeFromSuperView];
[buttonContainerView addSubview:secondPurchaseButton];
[UIView commitAnimations];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)