animateWithDuration_跑马灯Label的基础

原创 2016年06月02日 11:48:41

基础真的不想说太多了,因为说多了,听也听不明白的,要自己试

[UIView animateWithDuration:duration delay:self.pauseInterval options:self.animationOptions | UIViewAnimationOptionAllowUserInteraction animations:^{
 // adjust offset
 self.scrollView.contentOffset = (doScrollLeft ? CGPointMake(labelWidth + self.labelSpacing, 0) : CGPointZero);
} completion:^(BOOL finished) {
 _scrolling = NO;

}];

基本能实现滚动了,但是还碰到问题
如何暂停和重启?

- (void)actionPause{
  //speed = 0 时,会向前一小段(第二次开始有,每次不等)
  //但是resume的起步确是同步的
  //也就是说,实际的speed和pauseTime要比界面上的action move来的早
  //ui move后,pause就会向前
  self.scrollView.layer.speed = 0.0;
  CFTimeInterval pausedTime = [self.scrollView.layer convertTime:CACurrentMediaTime() fromLayer:self.scrollView.layer];

  _iPauseCount +=1;
  if(_iPauseCount>1){
    pausedTime -=self.scrollView.layer.beginTime;//完全不知道原因,但多次测试后发现要减去这个开始时间
                                                 //其实第一次也适用于减去beginTime,因为第一次beginTime=0
  }

  self.scrollView.layer.timeOffset = pausedTime;
}
- (void)actionResume{
  self.scrollView.layer.speed = 1.0;
  CFTimeInterval pausedTime = [self.scrollView.layer timeOffset];
  self.scrollView.layer.timeOffset = 0.0;
  //self.scrollView.layer.beginTime = 0.0;
  CFTimeInterval timeSincePause = [self.scrollView.layer convertTime:CACurrentMediaTime() fromLayer:self.scrollView.layer] - pausedTime;
  self.scrollView.layer.beginTime = timeSincePause;
  //self.scrollView.layer.beginTime = pausedTime + 20;

  _scrolling = true;
  _actionStatus = 1;
}

费了九牛二虎之力,
关键是

self.scrollView.layer.timeOffset

暂停解决了,又碰到问题
如何做滚动变速?
就是一个animate的过程中修改speed值,现在一修改会重置,没有变速效果,哎

版权声明:本文为博主原创文章,未经博主允许不得转载。

Label 控件实现跑马灯效果

public partial class LabelCt : System.Windows.Forms.Label     {         private PointF p;        ...
  • shizhen_2012
  • shizhen_2012
  • 2015年12月16日 11:12
  • 599

WPF 实现跑马灯效果的Label控件,数据绑定方式实现

项目中需要使用数据绑定的方式实现跑马灯效果的Label,故重构了Label控件;具体代码如下 using System; using System.Timers; using System.Wi...
  • msst1234
  • msst1234
  • 2017年10月23日 15:35
  • 312

iOS 实现UILabel的跑马灯效果

项目新功能模块UILabel长度有限,想要完全看到字就需要有跑马灯效果。 于是众里寻他千百度·······此处使用的是自定义的UIScrollView··· 点击进入原文 效果图 代码 AutoS...
  • u012265444
  • u012265444
  • 2016年07月18日 15:26
  • 9547

Swift版跑马灯

Swift版跑马灯,代码如下: // //  PaoMaView.swift //  JiuLiFunds // //  Created by yangyunfei ...
  • u013602835
  • u013602835
  • 2018年01月31日 15:25
  • 19

C#winform实现跑马灯

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; ...
  • haoxiang110
  • haoxiang110
  • 2014年10月22日 19:32
  • 6526

ios自动滚动UILabel,跑马灯,有两种滚动方式

自动滚动UILabel,跑马灯,有两种滚动方式(ios)
  • dashenid
  • dashenid
  • 2017年08月29日 15:27
  • 866

swift封装的跑马灯效果

swift封装的跑马灯效果,效果如下: 需要的可以到这里CSDN或者这里(github)下载。...
  • Loveway_
  • Loveway_
  • 2015年08月07日 18:00
  • 1686

跑马灯效果 文字上下滚动效果

近期项目中涉及到滚动新闻通知的跑马灯效果,
  • dzc33
  • dzc33
  • 2014年09月26日 11:04
  • 4892

Winform 下无闪烁走马灯效果实现

Winform 下无闪烁走马灯效果实现作者:肖波    最近需要在Winform项目中实现一个走马灯的效果,一开始用了一些办法比如移动Label控件,效果总是不太好,移动文本时总有闪烁的现象。后来找了...
  • eaglet
  • eaglet
  • 2008年04月09日 18:57
  • 935

winform状态栏跑马灯的效果

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; ...
  • a771948524
  • a771948524
  • 2013年07月12日 13:34
  • 1373
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:animateWithDuration_跑马灯Label的基础
举报原因:
原因补充:

(最多只允许输入30个字)