`
ydbc
  • 浏览: 738196 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

弧形轨道动画

 
阅读更多

UIBezierPath *trackPath = [UIBezierPathbezierPath];

[trackPath moveToPoint:P(0,0)];

// [trackPath addCurveToPoint:P(0, 500)

// controlPoint1:P(0, self.view.frame.size.width/2)

// controlPoint2:P(self.view.frame.size.width, 500)];

[trackPath addQuadCurveToPoint:P(self.frame.size.width,0) controlPoint:P(self.frame.size.width/2,self.frame.size.height-20) ];

CAShapeLayer *racetrack = [CAShapeLayerlayer];

racetrack.path = trackPath.CGPath;

racetrack.strokeColor = [UIColorblackColor].CGColor;

racetrack.fillColor = [UIColorclearColor].CGColor;

racetrack.lineWidth = 30.0;

[self.layeraddSublayer:racetrack];

CAShapeLayer *centerline = [CAShapeLayerlayer];

centerline.path = trackPath.CGPath;

centerline.strokeColor = [UIColorwhiteColor].CGColor;

centerline.fillColor = [UIColorclearColor].CGColor;

centerline.lineWidth = 2.0;

centerline.lineDashPattern = [NSArrayarrayWithObjects:[NSNumber numberWithInt:6], [NSNumbernumberWithInt:2],nil];

[self.layeraddSublayer:centerline];


NSString *str = @"华夏银行跑马灯";

// UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 44.0, 20.0)];

// [label setText:@""];

// [label setTextColor:[UIColor whiteColor]];

// [label setBackgroundColor:[UIColor redColor]];

for (int i=0; i< [strlength]; i++)

{

UIButton *bt = [UIButtonbuttonWithType:UIButtonTypeCustom];

[bt setFrame:CGRectMake(20,0, 200*i, 20)];

[bt setTitle: [strsubstringWithRange:NSMakeRange(i,1)] forState:UIControlStateNormal];

[selfaddSubview:bt];

CAKeyframeAnimation *anim = [CAKeyframeAnimationanimationWithKeyPath:@"position"];

anim.path = trackPath.CGPath;

anim.rotationMode =kCAAnimationRotateAuto;

anim.repeatCount =HUGE_VALF;

anim.duration = 8.0;

[bt.layeraddAnimation:anim forKey:@"race"];

}



分享到:
评论

相关推荐

    自定义弧形seekbar

    3. 重写onDraw()方法:这是自定义View的核心部分,我们需要在这里画出弧形轨道和滑块。可以使用Canvas的arcTo()方法画弧形,lineTo()方法连接起点和终点,以及drawRect()方法画滑块。 ```java @Override protected ...

    圆形进度条(弧形刻度)CircleProgress

    通过`canvas.drawArc()`方法可以绘制弧形,结合`Paint`的设置,可以画出带有进度的圆形轨道。 2. **SeekCircle库的使用**:在项目中引入`SeekCircle`库后,我们可以在布局XML文件中添加`CircleProgress`控件,通过...

    css3进度条小动画

    7. **自定义进度条形状**:通过CSS3的形状和伪元素,可以创造出各种形状的进度条,比如弧形、圆形等。 在"进度条合集"文件中,可能包含了不同设计和动画效果的进度条实例,例如线性进度条、环形进度条、带有文字...

    EFCircularSlider 可扩展的圆形滑杠

    6. **动画支持**:除了静态的滑动效果,EFCircularSlider还支持平滑的动画过渡,当值改变时,滑动条的移动和指针旋转都可以带有平滑的动画效果,提升用户体验。 7. **易于集成**:EFCircularSlider作为一个开源项目...

    圆形ProgressBar

    为了实现平滑的动画效果,可以使用`ObjectAnimator`或`ValueAnimator`来动态更新进度。 3. **设置属性**:为圆形ProgressBar添加自定义属性,如圆环宽度、颜色、填充颜色等。这些属性可以在XML布局文件中通过`...

    圆形滚动刻度seekbar

    5. **属性动画**:为了让滚动效果更流畅,可以使用Android的属性动画库,平滑地改变进度显示,增强用户体验。 在实际应用中,"圆形滚动刻度seekbar"可以用于各种需要展示进度或选择值的场景,如音量调节、亮度控制...

    coverFlow 界面上实现图片滑动

    首先,CoverFlow的核心是通过计算每个图像的位置和旋转角度,使其看起来像是在一个连续的弧形轨道上。这种效果通常通过使用CSS3的transform属性来实现,它可以处理元素的旋转、缩放、位移等变换。在JavaScript中,你...

    IOS圆弧滑竿

    4. 动画效果:为了让用户体验更佳,可以添加滑动动画。当滑块位置改变时,可以使用UIView的animate(withDuration:animations:)方法,平滑地移动滑块到新的位置。 三、应用场景 圆弧滑竿适用于多种场景,例如: 1. ...

    androd自定义有进度的圆形进度条.rar

    我们可以使用`canvas.drawCircle()`来画圆心,`canvas.drawArc()`来画弧形,表示进度。通过`getProgress()`方法获取当前进度,计算出弧度,然后设置`Paint`的颜色和风格进行绘制。 3. **属性动画**: 为了让进度条...

    圆形进度显示(有百分显示)

    - `canvas.drawArc()`根据进度绘制弧形。 3. 实现动画逻辑,如使用`ValueAnimator`监听进度变化,更新颜色和百分比显示。 4. 在`onMeasure()`方法中确定自定义视图的大小,确保圆形能完全显示。 5. 在布局文件中...

    3d可视化大屏(酷屏统计图).zip

    这是一个伪3d可视化图形的组件图,里面有着非常多种类的图形(仪表盘、金字塔动画、金字塔趋势、彩虹轨道图、环形饼图、环形气泡图、旋转多彩图、扫描半径图、滚动弧形线、新闻无缝滚动、水球图、水波图、酷屏首页...

    Android 不同形状的进度条源码-IT计算机-毕业设计.zip

    自定义时,需要重写onDraw()方法,通过画布(Canvas)绘制圆形轨道和填充部分。 2. **弧形进度条**(Arc ProgressBar):与圆形类似,但只显示一定角度的弧度,可以是半圆或者更小的部分。开发者可能通过调整Path的...

    android自定义view-特殊饼形图(环形图)

    在这个方法里,我们将绘制环形图的主要元素:环形轨道和填充的扇形区域。使用Canvas对象进行绘图,可以调用drawArc()方法来绘制弧形。这个方法需要指定一个椭圆(通过RectF对象定义)和开始角度以及扫过的角度。通过...

    自定义seekbar

    9. **多轨道Seekbar**:如果需要展示多个进度,可以实现一个多轨道的Seekbar,每个轨道对应一个进度值,通过叠加多个Drawable或者自定义ViewGroup来实现。 10. **触摸范围**:可以调整滑块的触摸范围,使得用户可以...

    wpf 环形进度条 wpf 自定义控件

    利用`Geometry`对象,我们可以定义`Path`的数据,使用`ArcSegment`来创建弧形路径。`Stretch`属性可以设置为`Fill`,以确保形状充满整个定义的边界。 3. **样式和模板**:为了使控件具有可复用性,我们可以定义`...

    圆形百分比进度条

    5. **动画效果**:为了增加用户体验,可以添加平滑的进度动画。这可以通过使用`ObjectAnimator`或`ValueAnimator`实现,随着时间线性改变进度值,并在每次更新时调用`invalidate()`触发重绘。 6. **交互性**:考虑...

    色彩斑斓的LoadingView及自定义进度条view

    对于圆形进度条,可以使用Paint的arcTo方法画出弧形,并根据进度改变弧形的角度;对于长形进度条,可以通过改变Rect的位置和大小来模拟进度的移动。此外,还可以通过ColorFilter或者Shader来实现进度条的颜色渐变,...

    1:三维练习题(附文档讲解110张).zip

    2. 轨道视图:利用轨道视图来规划和控制相机的移动,创造出动态的视角变化。 3. 动力学模拟:学习物理引擎,模拟物体碰撞、重力、弹簧等自然现象,增加动画的真实感。 六、案例分析 文档中的110张讲解涵盖了各种...

    CircularProgressView-源码.rar

    UIBezierPath可以创建出平滑曲线,非常适合构建圆形或弧形的界面元素。 2. **属性定制**: CircularProgressView可能会提供一系列属性来调整其外观和行为,例如进度颜色、背景颜色、进度宽度、圆环的内径和外径等。...

    安卓圆形进度条

    2. **进度条的弧形**:为了表示进度,我们需要绘制一个弧形,这可以通过`Canvas.drawArc()`完成。传递中心点坐标、半径、起始角度和结束角度参数,其中角度变化对应于进度的增加。 3. **动画效果**:为了实现动态...

Global site tag (gtag.js) - Google Analytics