/**
该部分代码实现了一个黑色的图形View从左到右地平滑移动(当然通过修改y坐标也可以实现,由上到下的平滑移动)
*/
//代码源自 iOS7 programming code
//ViewController.m
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIView *v; //正方形的View
@property CGPoint pOrig; //View的原始点
@property CGPoint pFinal; //View的终止点
@end
@implementation ViewController
#define which 2
#if which == 1
-(void) animate {
CGPoint p = self.v.center;
p.x += 100;
self.pFinal = p;
[UIView animateWithDuration:4 animations:^{
self.v.center = p;
}];
}
-(void) cancel {
[UIView animateWithDuration:0 animations:^{
CGPoint p = self.pFinal;
p.x += 1;
self.v.center = p;
} completion:^(BOOL finished) {
CGPoint p = self.pFinal;
self.v.center = p;
}];
}
#elif which == 2
-(void) animate {
CGPoint p = self.v.center;
self.pOrig = p;
p.x += 100;
NSUInteger opts = UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat;
[UIView animateWithDuration:1 delay:0 options:opts
animations:^{
self.v.center = p;
} completion: nil];
}
-(void) cancel {
NSUInteger opts = UIViewAnimationOptionBeginFromCurrentState;
[UIView animateWithDuration:0.1 delay:0 options:opts
animations:^{
self.v.center = self.pOrig;
} completion:nil];
}
#endif
- (IBAction)doStart:(id)sender {
[self animate];
}
- (IBAction)doStop:(id)sender {
[self cancel];
}
@end