封装了一个简单理解的iOS竖直文字轮播

效果图

请添加图片描述

原理

就是持有两个视图,并且两个视图同时改变origin.y
动画结束之后,判断哪个视图是在上面并且看不到的,
则将该视图移动到底部,并且该视图展示下一跳内容
在开始下一轮动画

代码

- (void)startAnimationWithDuration:(CGFloat)duration
{
    self.duration = duration;
    [self changeAnimation];
}

- (void)changeAnimation
{
    CGRect rect1 = self.label1.frame;
    CGPoint point1 = rect1.origin;
    point1.y -= CGRectGetHeight(self.bounds);
    rect1.origin = point1;
    
    CGRect rect2 = self.label2.frame;
    CGPoint point2 = rect2.origin;
    point2.y -= CGRectGetHeight(self.bounds);
    rect2.origin = point2;
    
    self.currentIndex = (self.currentIndex + 1)%self.titleArray.count;
    NSString *crrentTitle = self.titleArray[self.currentIndex];
    [UIView animateWithDuration:0.5 animations:^{
        self.label1.frame = rect1;
        self.label2.frame = rect2;
    } completion:^(BOOL finished) {
        if (CGRectGetMinY(self.label1.frame) < - CGRectGetHeight(self.bounds) / 2) {
            self.label1.frame = self.bottomRect;
            self.label1.text = crrentTitle;
        } else {
            self.label2.frame = self.bottomRect;
            self.label2.text = crrentTitle;
        }
    }];
    [self performSelector:@selector(changeAnimation) withObject:nil afterDelay:3.5];
}

demo
如果对你有帮助,请给一个star

相关推荐

  1. 分享一个POIExcel解析工具

    2024-06-07 09:44:03       29 阅读
  2. Minio工具类实现(基础minio方法)

    2024-06-07 09:44:03       39 阅读
  3. 制作

    2024-06-07 09:44:03       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-07 09:44:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-07 09:44:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-07 09:44:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-07 09:44:03       18 阅读

热门阅读

  1. Jitsi meet 退出房间后,用户还在房间内

    2024-06-07 09:44:03       9 阅读
  2. lua vm 四: 表达式

    2024-06-07 09:44:03       7 阅读
  3. 获取gitee上某个组织所有仓库的介绍

    2024-06-07 09:44:03       7 阅读
  4. 系统研发安全漏洞

    2024-06-07 09:44:03       6 阅读
  5. vue el-dialog封装成子组件(组件化)

    2024-06-07 09:44:03       7 阅读
  6. react-intl国际化在项目中的使用

    2024-06-07 09:44:03       6 阅读
  7. 浅谈人机交互

    2024-06-07 09:44:03       5 阅读
  8. 人机交互中的阴差阳错

    2024-06-07 09:44:03       4 阅读