Bri*_*ian 4 core-animation objective-c ios
我希望在iOS中的循环上设置单线贝塞尔曲线的动画.我头脑中的想法类似于Siri之前的iPhone 4上的语音控制屏幕.曲线不需要对任何东西做出反应即.音频,麦克风等.它只需要从屏幕左侧循环到屏幕右侧,并改变曲线的幅度.
我尝试了几次测试,这是我最接近的测试: IOS:从一条线到一条贝塞尔曲线的动画转换
我需要知道如何动画实际曲线看起来好像在移动,而不仅仅是向上和向下.
如果有人对此有所了解,那就太棒了!
谢谢!
哇,今天我的工作完全相同.:)检查一下:
所以我绘制波浪的视图初始化为:
_self_view = [[TDTWaveView alloc] initWithFrame:CGRectMake(-320, 174, 640, 200)];
Run Code Online (Sandbox Code Playgroud)
然后在我的viewDidLoad中,我打了[self animateWave];一次电话.
- (void)animateWave {
[UIView animateWithDuration:.5 delay:0.0 options:UIViewAnimationOptionRepeat|UIViewAnimationOptionCurveLinear animations:^{
_self_view.transform = CGAffineTransformMakeTranslation(+_self_view.frame.size.width/2, 0);
} completion:^(BOOL finished) {
_self_view.transform = CGAffineTransformMakeTranslation(0, 0);
}];
}
Run Code Online (Sandbox Code Playgroud)
这为波浪提供了一种你可能想要的线性运动.
至于波的代码,我会分享一下.
self.yc = 30//The height of a crest.
float w = 0;//starting x value.
float y = rect.size.height;
float width = rect.size.width;
int cycles = 7;//number of waves
self.x = width/cycles;
CGContextRef context = UIGraphicsGetCurrentContext();
CGMutablePathRef path = CGPathCreateMutable();
CGContextSetLineWidth(context, .5);
while (w <= width) {
CGPathMoveToPoint(path, NULL, w,y/2);
CGPathAddQuadCurveToPoint(path, NULL, w+self.x/4, y/2 - self.yc, w+self.x/2, y/2);
CGPathAddQuadCurveToPoint(path, NULL, w+3*self.x/4, y/2 + self.yc, w+self.x, y/2);
w+=self.x;
}
CGContextAddPath(context, path);
CGContextDrawPath(context, kCGPathStroke);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7043 次 |
| 最近记录: |