【iOS_GitHub】跑馬燈/滾動文字條(相似於菜鳥/京東/支付寶/聚划算/網商銀行等app的跑馬燈功能)

Marquee(跑馬燈)

說一下初衷吧,最初要用到跑馬燈功能的時候,也找過一些SDK,但未能找到與我需求很好契合的SDK,主要就是手勢滑動後的問題(手勢滑動push/pop || 先後臺切換等時候跑馬燈出現失靈的情況),目前支持水平 && 上下(正向 && 逆向)滾動,解決push/pop && 先後臺切換 && 手勢滑動 && 意外中斷等狀況,但願經過此SDK給予與我有一樣需求的童鞋一些幫助。
數組

先上圖,看一下是否符合你的場景吧!

Function Description

  1. 輕量級跑馬燈
  2. 支持attributedText
  3. 隨時獲取跑馬燈狀態
  4. 前/後臺切換從新加載
  5. 水平 && 上下(正向 && 逆向)
  6. push/pop || 先後臺切換 || 手勢返回後自動滾動

How to use

1. 水平:水平向左滾動的跑馬燈

a. 簡單的集成方式:當成一個普通label使用便可,在初始化方法的時候能夠自定義單次滾動時間

/** 初始化
 *  duration:單次滾動時間
 */
- (instancetype)initWithFrame:(CGRect)frame withSingleScrollDuration:(NSTimeInterval)duration;
複製代碼

b. 狀態自由設置:經過如下方法傳入相應的MarqueeState_H枚舉值便可

/** 設置跑馬燈狀態
 *  marqueeState:跑馬燈狀態(枚舉)
 *  注:「開啓跑馬燈」放在viewDidAppear中,「關閉跑馬燈」放在viewWillDisappear中
 */
- (void)marqueeOfSettingWithState:(MarqueeState_H)marqueeState;
複製代碼
  • 注:demo中有詳細使用的方法,集成的時候按其方式使用便可,此外,還要注意一下開啓/關閉跑馬燈方法放置的函數
- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    
    // 開啓跑馬燈
    [_marquee marqueeOfSettingWithState:MarqueeStart];
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    
    // 關閉跑馬燈
    [_marquee marqueeOfSettingWithState:MarqueeShutDown];
}
複製代碼

2. 上下:上下(正向 && 逆向)滾動的跑馬燈

a. 簡單的集成方式:正常初始化後,傳入滾動文字的數據源數組便可

b. 狀態自由設置:經過如下方法傳入相應的MarqueeState_V枚舉值便可

/** 設置跑馬燈狀態
 *  marqueeState:跑馬燈狀態(枚舉)
 */
- (void)marqueeOfSettingWithState:(MarqueeState_V)marqueeState;
複製代碼

c. 實時回調:經過index屬性和scrollWithCallbackBlock方法能夠實時獲取當前展現文字在數據源數組中的位置

/** 當前顯示展現的文字在數據源數組中的索引_只讀 */
@property (nonatomic, assign) NSInteger index;

/** 每次滾動回調的Block */
- (void)scrollWithCallbackBlock:(verticalMarqueeBlock)block;
複製代碼

d. 個性化設置:可經過如下屬性進行個性化的設置

/** 是否爲逆時針滾動(default:NO)
 *  順時針:底部 ===> 頂部
 *  逆時針:頂部 ===> 底部
 */
@property (nonatomic, assign) BOOL isCounterclockwise;

/** 單次滾動時間
 *  default:0.5f
 */
@property (nonatomic, assign) CGFloat scrollDuration;
/** 滾動延遲
 *  default:2.5f
 */
@property (nonatomic, assign) CGFloat scrollDelay;

/** 滾動文字的顏色
 *  default:[UIColor blackColor]
 */
@property (nonatomic, strong) UIColor *verticalTextColor;
/** 滾動文字的字體
 *  default:[UIFont systemFontOfSize:14]
 */
@property (nonatomic, strong) UIFont *verticalTextFont;
/** 顯示文字的對齊方式
 *  default:NSTextAlignmentLeft
 */
@property (nonatomic, assign) NSTextAlignment verticalTextAlignment;
/** 顯示文字的行數
 *  default:2(注意一下frame.width的設置)
 */
@property (nonatomic, assign) NSInteger verticalNumberOfLines;
複製代碼

Github 傳送門app

相關文章
相關標籤/搜索