标签:
- (void)clickButton:(id)sender { UIBezierPath *path = [UIBezierPath bezierPath]; [path moveToPoint:btn.center]; [path addCurveToPoint:btn.center controlPoint1:CGPointMake(20, 300) controlPoint2:CGPointMake(300, 460)]; //位置 CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"]; animation.path = path.CGPath; //缩放 CABasicAnimation *scaleAnim = [CABasicAnimation animationWithKeyPath:@"transform"]; scaleAnim.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity]; scaleAnim.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 1.0)]; //透明度 CABasicAnimation *alphaAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];//不是用alpha alphaAnimation.fromValue=[NSNumber numberWithFloat:1.0]; alphaAnimation.toValue=[NSNumber numberWithFloat:0.1]; //动画组 CAAnimationGroup *groups = [CAAnimationGroup animation]; groups.animations = [NSArray arrayWithObjects:animation, alphaAnimation, scaleAnim,nil]; groups.duration = 5.0f; groups.removedOnCompletion = NO; groups.fillMode = kCAFillModeForwards; groups.delegate = self; [groups setValue:@"groupsAnimation" forKey:@"animationName"]; [btn.layer addAnimation:groups forKey:@"poaasgdsition scale"]; } //这个方法竟然是来自NSObject - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag { NSLog(@"Finished"); }
2. 贝塞尔曲线绘图(三次) copy from http://www.henishuo.com/uibezierpath-draw/
在UIView类的DrawRect方法中
- (void)drawThirdBezierPath { UIBezierPath *path = [UIBezierPath bezierPath]; // 设置起始端点 [path moveToPoint:CGPointMake(20, 150)]; [path addCurveToPoint:CGPointMake(300, 150) controlPoint1:CGPointMake(160, 0) controlPoint2:CGPointMake(160, 250)]; path.lineCapStyle = kCGLineCapRound; path.lineJoinStyle = kCGLineJoinRound; path.lineWidth = 5.0; UIColor *strokeColor = [UIColor redColor]; [strokeColor set]; [path stroke]; }
顺便show一下自定义UIView的大致结构
参考IOS7 Programming Cookbook ch20 #import <UIKit/UIKit.h> @interface TestView : UIView @end @implementation TestView - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { [self setBackgroundColor:[UIColor clearColor]]; } return self; } -(void)setImage2:(UImage *img) { [self setneesDisplay]; } // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { //draw string1 NSString *str = @"abc"; UIFont *font = [UIFont fontWithName:@"HelveticaNeue-Bold" size:10.0f]; [str drawAtPoint:CGPointMake(0,0) withAttributes:@{ NSFontAttributeName:font, NSForegroundColorAttributeName:[UIColor redColor] }]; //draw string2 NSString *str2 = @"abc2"; UIFont *font2 = [UIFont fontWithName:@"HelveticaNeue-Bold" size:12.0f]; [str2 drawAtPoint:CGPointMake(40,0) withAttributes:@{ NSFontAttributeName:font2, NSForegroundColorAttributeName:[UIColor greenColor] }]; //draw image1 UIImage *img = [UIImage imageNamed:@"voice.png"]; [img drawAtPoint:CGPointMake(0, 0)]; //draw image2 [img drawInRect:CGRectMake(80, 80, 20, 10)]; //draw Line [[UIColor brownColor] set]; CGContextRef currentContext = UIGraphicsGetCurrentContext(); CGContextSetLineWidth(currentContext, 4.0f); CGContextSetLineJoin(currentContext, kCGLineJoinRound);//接缝处 CGContextMoveToPoint(currentContext, 20, 20); CGContextAddLineToPoint(currentContext, 50, 80); CGContextAddLineToPoint(currentContext, 100, 10); CGContextStrokePath(currentContext); } @end
标签:
原文地址:http://www.cnblogs.com/dongfangchun/p/5350503.html