Thứ bảy, ngày 25 tháng 11 năm 2017

rotation Animation and move control in IOS

Ngày đăng: 15/12/2012, 0:32:2PM | Lượt xem: 2,463
Hot!

Với nhu cầu tạo một vòng tròn âm dương quay đều đều sử dụng trong bói toán. hnay mình xin up code giúp việc quay một uiview thật dễ dàng.

 

Hi cả nhà, dù công việc rất bận nhưng tìm hiểu được gì mình lại tổng hợp lên đây để chia sẻ cùng anh em. Có thể là một thủ thuật rất nhỏ nhưng đôi khi lại có tác dụng vô cùng lớn.

Ở đây mình có một cái button hình mũi tên(định làm cái vòng tròn âm dương nhưng bên design chưa cắt) để làm demo nhỏ cho các bạn.

Rotate

Để quay 180* ta dùng đoạn code sau

 

- (void) downUnder:(float)secs option:(UIViewAnimationOptions)option

{

    [UIView animateWithDuration:secs delay:0.0 options:option

         animations:^{

             self.transform = CGAffineTransformRotate(self.transform, M_PI);

         }

         completion:nil];

}

M_PI ở đây chính là số pi trong toán học.

Khj click vào buttton này thì nó sẽ quay 180 độ và click tiếp nó sẽ quay trở lại

Vậy khi ta cần quay 360 độ thì làm ntn. Chúng ta cùng đến với đoạn code sau:

 

- (IBAction) btnDownUnder:(id)sender

{

UIButton* button= (UIButton*)sender;

    CABasicAnimation* rotationAnimation;

    rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];

    rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0];

    rotationAnimation.duration = 0.5;

    rotationAnimation.cumulative = YES;

    rotationAnimation.repeatCount = 4;

    

    [button.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];

}

ở đây nó sẽ quay 360 độ và thưc hiện 4 lần mỗi lần 0.5s.

Move

Còn việc di chuyển control hay nói cách khác là di chuyển 1 uiview cho đúng bản chất  ios. 

ta dùng đoạn code sau để di chuyển

 

 

- (void) moveTo:(CGPoint)destination duration:(float)secs option:(UIViewAnimationOptions)option

{

    [UIView animateWithDuration:secs delay:0.0 options:option

                     animations:^{

                         self.frame = CGRectMake(destination.x,destination.y, self.frame.size.width, self.frame.size.height);

                     }

                     completion:nil];

}

Ở chỗ cần gọi ta viết như sau:

 

- (IBAction) btnMoveTo:(id)sender

{

    UIButton* button= (UIButton*)sender;

    [movingButton moveTo:

     CGPointMake(button.center.x - (movingButton.frame.size.width/2),

                 button.frame.origin.y - (movingButton.frame.size.height + 5.0))                

                duration:1.0

                  option:curveValues[selectedCurveIndex]]; // above the tapped button

}

Code rất đơn giản và dễ hiểu các bạn tự châm cứu nhé

Sourecode cho các bạn tham khảo

doanhkisi
 Chia sẻ qua: 
Hot!
Ý kiến bạn đọc

These items will be permanently deleted and cannot be recovered. Are you sure?

Gallery

image

Maecenas viverra rutrum pulvinar

Maecenas viverra rutrum pulvinar! Aenean vehicula nulla sit amet metus aliquam et malesuada risus aliquet. Vestibulum rhoncus, dolor sit amet venenatis porta, metus purus sagittis nisl, sodales volutpat elit lorem…

Read more

Text Links

Thiết kế logo chuyên nghiệp Insky
DAFABET
W88 w88b.com/dang-ky-tai-khoan-w88
W88
ca do bong da online
Copyright © 2011 - 2012 vietshare.vn by phamkhuong102@gmail.com doanhkisi2315@gmail.com. All rights reserved.