UIVIiew and animation
阿新 • • 發佈:2018-12-16
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [self initButton]; } -(void)initView{ for (int i=0; i < 4; i ++ ) { UIView * view = [[UIView alloc]initWithFrame:CGRectMake(30+((self.view.frame.size.width-150)/4+30)*i, 500, (self.view.frame.size.width-150)/4, (self.view.frame.size.width-150)/4)]; view.backgroundColor =[UIColor redColor]; view.layer.cornerRadius = (self.view.frame.size.width-150)/4/2; [UIView animateWithDuration:4 delay:1 usingSpringWithDamping:0.01 initialSpringVelocity:0.1 options:UIViewAnimationOptionBeginFromCurrentState animations:^{ view.transform = CGAffineTransformMakeScale(1.0 , 1.0); view.center = CGPointMake(30+((self.view.frame.size.width-150)/4+30)*i, 800); } completion:^(BOOL finished){ view.center = CGPointMake(30+((self.view.frame.size.width-150)/4+30)*i, 800); }]; [self.view addSubview:view]; } } //duration動畫持續時間 //delay動畫延時幾秒執行 //velocity動畫開始速度 //options動畫效果引數options:UIViewAnimationOptionBeginFromCurrentState //completion動畫執行完成的回撥 //usingSpringWithDamping:0.01範圍0.01-1。0取值越小,彈性越明顯 -(void)initButton{ UIButton * button = [[UIButton alloc]initWithFrame:CGRectMake(self.view.frame.size.width/2 - 25, self.view.frame.size.height-50, 50, 50)]; button.backgroundColor =[UIColor redColor]; [button addTarget:self action:@selector(initView) forControlEvents:UIControlEventTouchDown ]; NSLog(@"%d",1); [self.view addSubview:button]; }
optiona後面所接的選擇
enum { UIViewAnimationOptionLayoutSubviews = 1 << 0, UIViewAnimationOptionAllowUserInteraction = 1 << 1, UIViewAnimationOptionBeginFromCurrentState = 1 << 2, UIViewAnimationOptionRepeat = 1 << 3, UIViewAnimationOptionAutoreverse = 1 << 4, UIViewAnimationOptionOverrideInheritedDuration = 1 << 5, UIViewAnimationOptionOverrideInheritedCurve = 1 << 6, UIViewAnimationOptionAllowAnimatedContent = 1 << 7, UIViewAnimationOptionShowHideTransitionViews = 1 << 8, UIViewAnimationOptionOverrideInheritedOptions = 1 << 9, UIViewAnimationOptionCurveEaseInOut = 0 << 16, UIViewAnimationOptionCurveEaseIn = 1 << 16, UIViewAnimationOptionCurveEaseOut = 2 << 16, UIViewAnimationOptionCurveLinear = 3 << 16, UIViewAnimationOptionTransitionNone = 0 << 20, UIViewAnimationOptionTransitionFlipFromLeft = 1 << 20, UIViewAnimationOptionTransitionFlipFromRight = 2 << 20, UIViewAnimationOptionTransitionCurlUp = 3 << 20, UIViewAnimationOptionTransitionCurlDown = 4 << 20, UIViewAnimationOptionTransitionCrossDissolve = 5 << 20, UIViewAnimationOptionTransitionFlipFromTop = 6 << 20, UIViewAnimationOptionTransitionFlipFromBottom = 7 << 20, };
關於 view.transform = CGAffineTransformMakeScale(1.0 , 1.0);
1.CGAffineTransformMakeScale (CGFloat sx, CGFloat sy);//建立一個給定比例放縮的變換,那麼圖片的寬度就會變為 width*sx ,對應高度變為 hight * sy。 2.CGAffineTransform CGAffineTransformMakeRotation ( CGFloat angle); //建立一個旋轉角度的變化在這裡可以看到引數並不是一個角度,但是它是把引數作為一個弧度,然後把弧度再轉換為角度來處理,其結果就可能是將一個圖片檢視旋轉了多少度。 3。CGAffineTransform CGAffineTransformMakeTranslation (CGFloat tx,CGFloat ty);這個就比較好理解了,假設是一個檢視,那麼它的起始位置 x 會加上tx , y 會加上 ty