animation = YES/NO 还在用这个玩意?
?
?
?
动画看起来都很牛X吧,其实用我们的UIKit库也可以实现一些动画的,
虽然不能向CG那么厉害,但是在项目里加上一些小小的动画,
就瞬间可以让你的项目高大上不少.
如果之前没接触过那也没关系,先上一张弟弟图;
再接着上代码
#import "ViewController.h"
#import
@interface ViewController ()
@property(nonatomic,strong)UIView *translationView;
@property(nonatomic,strong)UITextView *password;
@property(nonatomic,strong)UIButton *login;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
[btn setTitle:@"go" forState:UIControlStateNormal];
btn.backgroundColor = [UIColor blackColor];
btn.center = self.view.center;
[btn addTarget:self action:@selector(translationDidChange) forControlEvents:UIControlEventTouchDown];
[self.view addSubview:btn];
self.translationView = [[UIView alloc] initWithFrame:CGRectMake(0, 100, 50, 50)];
self.translationView.backgroundColor = [UIColor redColor];
[self.view addSubview:self.translationView];
}
最后触发方法 通过改变控件中心点的frame来实现平移
这里面参数UIview直接换成你想要的控件类型;
animateWith 后面的Duration是设置动画完成的过程用时;
后面block就是位移的目标地点;
-(void)translationDidChange{
CGPoint accountCenter = self.translationView.center;
self.translationView.center = accountCenter;
accountCenter.x += self.view.frame.size.width-50;
[UIView animateWithDuration:3.5 animations:^{
self.translationView.center = accountCenter;
} completion:nil];
}
如果你需要控件平移效果的话,这个很基本了已经
从这个一个方法我们就可以实现上下左右移动
宽高都改变的情况下斜着来也行,block还可以写透明度
触发方法代码:
CGPoint accountCenter = self.translationView.center;
CGFloat accountAlpha = self.translationView.alpha;
self.translationView.center = accountCenter;
self.translationView.alpha = accountAlpha;
accountCenter.x += self.view.frame.size.width-50;
accountCenter.y += self.view.frame.size.height - 150;
accountAlpha -= 1;
[UIView animateWithDuration:3.5 animations:^{
self.translationView.center = accountCenter;
self.translationView.alpha = accountAlpha;
} completion:nil];
可以实现的效果非常非常多,
比如登陆注册的时候可以搞个输入框,密码框
确定按钮动画入场.........渍渍渍.....