往往項目中經常出現此類需求

用戶通過點擊引導按鈕可響應頁面附帶按鈕的點擊事件。
//// gzhGuideView.h// GuideView//// Created by 郭志賀 on 2020/5/29.// Copyright © 2020 郭志賀. All rights reserved.//#import <UIKit/UIKit.h>NS_ASSUME_NONNULL_BEGIN@interface gzhGuideView : UIView-(void)showGuide:(UIView*)view;//顯示引導-(void)dismissGuide;//移除@endNS_ASSUME_NONNULL_END
//// gzhGuideView.m// GuideView//// Created by 郭志賀 on 2020/5/29.// Copyright © 2020 郭志賀. All rights reserved.//#import "gzhGuideView.h"@implementation gzhGuideView-(instancetype)initWithFrame:(CGRect)frame{ if (self = [super initWithFrame:frame]) { self.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.6]; //主要代碼 添加路徑 UIBezierPath *path = [UIBezierPath bezierPathWithRect:frame]; // 這里添加第二個路徑 需要扣除的部分 [path appendPath:[[UIBezierPath bezierPathWithRoundedRect:CGRectMake(100, 100, 150, 40) cornerRadius:5] bezierPathByReversingPath]]; //渲染 CAShapeLayer *shapeLayer = [CAShapeLayer layer]; shapeLayer.path = path.CGPath; [self.layer setMask:shapeLayer]; //根據需求添加按鈕 實現點擊事件 UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom]; button.frame = CGRectMake(100, 100, 150, 40); [button addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside]; button.layer.cornerRadius = 5.0f; button.layer.masksToBounds = YES; [self addSubview:button]; } return self;}-(void)showGuide:(UIView *)view{//添加 [view.window addSubview:self]; [view.window bringSubviewToFront:self]; self.alpha = 1;}-(void)dismissGuide{//移除 [self removeFromSuperview];}-(void)buttonClick{ [self dismissGuide]; NSLog(@"引導狀態可點擊");}@end相應頁面直接添加
gzhGuideView * guide = [[gzhGuideView alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)];dispatch_async(dispatch_get_main_queue(), ^{[guide showGuide: self .view]; });可根據不同需求進行不同的布局,核心代碼就是添加路徑
總結
到此這篇關于iOS開發添加新手引導的實例代碼的文章就介紹到這了,更多相關ios新手引導內容請搜索武林網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持武林網!
新聞熱點
疑難解答