一肢执、廢話(huà)不多說(shuō)枉阵,直接上效果
-
實(shí)際使用效果
引導(dǎo)頁(yè)gif.gif
二、Demo址
- Demo效果
三预茄、功能
1兴溜、便捷實(shí)現(xiàn)引導(dǎo)圖,均采用縷空模式
2耻陕、支持一次性出現(xiàn)一個(gè)或多個(gè)提示
3拙徽、支持順序出現(xiàn)引導(dǎo)提示功能且不限制最大連續(xù)出現(xiàn)的數(shù)量
4、自帶動(dòng)畫(huà)效果
四诗宣、使用方式
在Demo中膘怕,需要關(guān)注的類(lèi)有WKStepMaskGuideView以及WKStepMaskModel,它們均位于WKStepMaskGuideView.h文件中梧田。
1淳蔼、WKStepMaskModel
作用:構(gòu)建WKStepMaskGuideView所必須的實(shí)例類(lèi)
///首先構(gòu)建一個(gè)模型侧蘸,圓角度
@interface WKStepMaskModel : NSObject
///基于keywindow的frame
@property (nonatomic, assign) CGRect frame;
@property (nonatomic, strong) UIView * view;
@property (nonatomic, assign) CGFloat cornerRadius;
@property (nonatomic, assign) NSUInteger step;
///推薦使用此方法 計(jì)算好frame傳入
+ (instancetype)creatModelWithFrame:(CGRect)frame cornerRadius:(CGFloat)cornerRadius step:(NSUInteger)step;
///推薦使用withframe方法初始化 如若傳入view 只會(huì)取此view對(duì)應(yīng)其俯視圖的frame裁眯,如果布局層級(jí)過(guò)深可能會(huì)有差錯(cuò)。
+ (instancetype)creatModelWithView:(UIView *)view cornerRadius:(CGFloat)cornerRadius step:(NSUInteger)step;
@end
構(gòu)建此model時(shí)讳癌,view和frame可以都設(shè)置值穿稳,首先以frame計(jì)算,在注釋中也寫(xiě)了原因晌坤,因?yàn)閭魅雟iew獲取frame時(shí)可能不準(zhǔn)確逢艘。
cornerradius顧名思義旦袋,構(gòu)建view對(duì)應(yīng)的縷空時(shí)的圓角度。
step標(biāo)識(shí)此view于何時(shí)顯示--->構(gòu)建maskguideview時(shí)根據(jù)傳入的model中step由小至大依次顯示它改。
2疤孕、WKStepMaskGuideView
作用:帶順序的縷空引導(dǎo)視圖的基類(lèi),你的引導(dǎo)圖必須繼承自它央拖。
它有且僅有一個(gè)初始化方法祭阀,必須使用此方法初始化它。
@interface WKStepMaskGuideView : WKKMBaseGuideView
@property (nonatomic, strong, readonly) NSMutableArray<UIView *> * views;
@property (nonatomic, strong, readonly) NSMutableArray<NSValue *> * rects;
@property (nonatomic, strong, readonly) NSMutableArray<NSNumber *> * steps;
@property (nonatomic, weak ) id<WKStepMaskGuideViewDelegate> delegate;
///models中的model的step可以無(wú)序鲜戒,內(nèi)部會(huì)進(jìn)行排序专控,生成的views根據(jù)step排序
- (instancetype)initWithModels:(NSArray <WKStepMaskModel *> *)models;
///子類(lèi)覆寫(xiě)
- (void)configInterFace;
///此方法 先調(diào)用與代理方法 willchange
- (void)viewWillEnterNextStep:(NSUInteger)nextStep;
- (void)viewDidEnterNextStep:(NSUInteger)nextStep;
@end
當(dāng)你構(gòu)建它的子類(lèi)時(shí),你可以覆寫(xiě)的方法有以下七個(gè):
- (void)configInterFace;
- (void)viewWillShow;
- (void)viewDidShow;
- (void)viewWillDismiss;
- (void)viewDidDismiss;
- (void)viewWillEnterNextStep:(NSUInteger)nextStep;
- (void)viewDidEnterNextStep:(NSUInteger)nextStep;
這里只簡(jiǎn)要介紹一下configInterFace方法遏餐,因其他方法均顧名思義伦腐。
其中configInterFace,你的guideview中包含的提示信息所需要的view在此構(gòu)建以及布局失都。布局時(shí)柏蘑,有一個(gè)要點(diǎn)是為UIView添加的wk_steptag屬性,此處簡(jiǎn)要概述其作用:
縷空的view具備wk_steptag屬性(你不能去設(shè)置此值嗅剖,此值在內(nèi)部也被設(shè)置好)辩越,如果需要和縷空的view一起出現(xiàn)的提示性view的wk_steptag屬性應(yīng)和其有一樣的值。例如A為縷空的view信粮,x,y,z為需要和其一起出現(xiàn)的提示性view黔攒,則x,y,z的wk_steptag值等于view的wk_steptag。注:再次強(qiáng)調(diào)不能去設(shè)置縷空view的wk_steptag值强缘。
具體的使用例子督惰,請(qǐng)參照Demo