說一下初衷吧,最初要用到跑馬燈功能的時候,也找過一些SDK,但未能找到與我需求很好契合的SDK,主要就是手勢滑動後的問題(手勢滑動push/pop || 先後臺切換等時候跑馬燈出現失靈的情況),目前支持水平 && 上下(正向 && 逆向)滾動,解決push/pop && 先後臺切換 && 手勢滑動 && 意外中斷等狀況,但願經過此SDK給予與我有一樣需求的童鞋一些幫助。
數組
/** 初始化
* duration:單次滾動時間
*/
- (instancetype)initWithFrame:(CGRect)frame withSingleScrollDuration:(NSTimeInterval)duration;
複製代碼
MarqueeState_H
枚舉值便可/** 設置跑馬燈狀態
* marqueeState:跑馬燈狀態(枚舉)
* 注:「開啓跑馬燈」放在viewDidAppear中,「關閉跑馬燈」放在viewWillDisappear中
*/
- (void)marqueeOfSettingWithState:(MarqueeState_H)marqueeState;
複製代碼
開啓/關閉跑馬燈
方法放置的函數- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
// 開啓跑馬燈
[_marquee marqueeOfSettingWithState:MarqueeStart];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
// 關閉跑馬燈
[_marquee marqueeOfSettingWithState:MarqueeShutDown];
}
複製代碼
MarqueeState_V
枚舉值便可/** 設置跑馬燈狀態
* marqueeState:跑馬燈狀態(枚舉)
*/
- (void)marqueeOfSettingWithState:(MarqueeState_V)marqueeState;
複製代碼
index
屬性和scrollWithCallbackBlock
方法能夠實時獲取當前展現文字在數據源數組中的位置/** 當前顯示展現的文字在數據源數組中的索引_只讀 */
@property (nonatomic, assign) NSInteger index;
/** 每次滾動回調的Block */
- (void)scrollWithCallbackBlock:(verticalMarqueeBlock)block;
複製代碼
/** 是否爲逆時針滾動(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