iOS 抽奖轮盘跑马灯边框的实现

3,553 阅读2分钟

「这是我参与2022首次更文挑战的第6天,活动详情查看:2022首次更文挑战」。

前言

跑马灯的应用场景:

  1. iOS 抽奖轮盘边框动画

从CSDN下载Demo:https://download.csdn.net/download/u011018979/16543761 原理: 用NSTimer无限替换背景图片1和背景图片2,达到跑马灯的效果。

[video(video-1hBLOZJf-1617952857559)(type-csdn)(url-live.csdn.net/v/embed/158… iOS翻牌效果 & iOS 抽奖轮盘边框动画)]


- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    
    [self rotate:_rotaryTable];
    
}

/**
 
 iOS翻牌效果

 */
- (void)rotate:(id)sender {
    
[UIView beginAnimations:@"View Filp" context:nil];
[UIView setAnimationDelay:0.25];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:sender
                          cache:NO];
[UIView commitAnimations];
    
}

在这里插入图片描述

  1. 在待办界面或者工作台界面,往往需要应用到跑马灯的地方

原理:利用QMUIMarqueeLabel 进行cell封装简易的跑马灯 label 控件

文章:kunnan.blog.csdn.net/article/det…

在这里插入图片描述 如用户登陆未绑定手机号,进行提示。

简易的跑马灯 label 控件,在文字超过 label 可视区域时会自动开启跑马灯效果展示文字,文字滚动时是首尾连接的效果 在这里插入图片描述

I iOS 抽奖轮盘边框动画

1.1 原理

iOS 抽奖轮盘边框动画的实现原理:用NSTimer无限替换背景图片1和背景图片2,达到跑马灯的效果。

在这里插入图片描述

应用场景: iOS 抽奖轮盘边框动画

审核注意事项:

  1. 在抽奖页面添加一句文案“本活动与苹果公司无关” 2, 在提交审核时修改分级至17+

1.2 实现代码

//
//  ViewController.m
//  horse_race_lamp
//
//  Created by mac on 2021/4/7.
#import <Masonry/Masonry.h>


#import "ViewController.h"
NSString *const bg_horse_race_lamp_1=@"bg_horse_race_lamp_1";
NSString *const bg_horse_race_lamp_2=@"bg_horse_race_lamp_2";

@interface ViewController ()
/**
 
 用NSTimer无限替换bg_horse_race_lamp_1和bg_horse_race_lamp_2,达到跑马灯的效果
 
 应用场景: iOS 抽奖轮盘边框动画
 */
@property (nonatomic,strong) UIImageView *rotaryTable;
@property (nonatomic,strong) NSTimer *itemBordeTImer;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    
    //通过以下两张图片bg_lamp_1 bg_lamp_2,用NSTimer无限替换,达到跑马灯的效果
    _rotaryTable = [UIImageView new];
    _rotaryTable.tag = 100;
    
    [_rotaryTable setImage:[UIImage imageNamed:bg_horse_race_lamp_1]];
    
    [self.view addSubview:_rotaryTable];
    
    [_rotaryTable mas_makeConstraints:^(MASConstraintMaker *make) {
       
        make.center.offset(0);
        
    }];
    
    
    
    _itemBordeTImer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(itemBordeTImerEvent) userInfo:nil repeats:YES];
    
    
    [[NSRunLoop currentRunLoop] addTimer:_itemBordeTImer forMode:NSRunLoopCommonModes];
    
    
    


    
    
}
// 边框动画
- (void)itemBordeTImerEvent
{
    if (_rotaryTable.tag == 100) {
        _rotaryTable.tag = 101;
        [_rotaryTable setImage:[UIImage imageNamed:bg_horse_race_lamp_2]];
    }else if (_rotaryTable.tag == 101){
        _rotaryTable.tag = 100;
        [_rotaryTable setImage:[UIImage imageNamed:bg_horse_race_lamp_1]];
    }
}




@end

1.3 下载Demo

从CSDN下载Demo:https://download.csdn.net/download/u011018979/16543761

see also

更多内容请关注 #小程序:iOS逆向,只为你呈现有价值的信息,专注于移动端技术研究领域;更多服务和咨询请关注#公众号:iOS逆向。