携手创作,共同成长!这是我参与「日新方案 8 月更文挑战」的第11天,点击检查活动概况
前语
跑马灯的应用场景:
- iOS 抽奖轮盘边框动画
原理: 用NSTimer无限替换背景图片1和背景图片2,到达跑马灯的作用
- (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];
}
- 在待办界面或许工作台界面,往往需求应用到跑马灯的当地
原理:利用QMUIMarqueeLabel 进行cell封装简易的跑马灯 label 控件
文章:kunnan.blog.csdn.net/article/det…
如用户登陆未绑定手机号,进行提示。
简易的跑马灯 label 控件,在文字超越 label 可视区域时会主动敞开跑马灯作用展现文字,文字翻滚时是首尾连接的作用
I iOS 抽奖轮盘边框动画
1.1 原理
用NSTimer无限替换UIImageView的Image为互为错位的bg_horse_race_lamp_1或许bg_horse_race_lamp_2,到达跑马灯的作用
应用场景: iOS 抽奖轮盘边框动画
审核注意事项:
- 在抽奖页面添加一句案牍“本活动与苹果公司无关” 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
private :https://github.com/zhangkn/horse_race_lamp
see also
公众号:iOS逆向