iOS開(kāi)發(fā)添加新手引導(dǎo)效果
往往項(xiàng)目中經(jīng)常出現(xiàn)此類需求

用戶通過(guò)點(diǎn)擊引導(dǎo)按鈕可響應(yīng)頁(yè)面附帶按鈕的點(diǎn)擊事件。
// // 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;//顯示引導(dǎo) -(void)dismissGuide;//移除 @end NS_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];
// 這里添加第二個(gè)路徑 需要扣除的部分
[path appendPath:[[UIBezierPath bezierPathWithRoundedRect:CGRectMake(100, 100, 150, 40) cornerRadius:5] bezierPathByReversingPath]];
//渲染
CAShapeLayer *shapeLayer = [CAShapeLayer layer];
shapeLayer.path = path.CGPath;
[self.layer setMask:shapeLayer];
//根據(jù)需求添加按鈕 實(shí)現(xiàn)點(diǎn)擊事件
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(@"引導(dǎo)狀態(tài)可點(diǎn)擊");
}
@end
相應(yīng)頁(yè)面直接添加
gzhGuideView * guide = [[gzhGuideView alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)];
dispatch_async(dispatch_get_main_queue(), ^{
[guide showGuide: self .view];
});
可根據(jù)不同需求進(jìn)行不同的布局,核心代碼就是添加路徑
總結(jié)
到此這篇關(guān)于iOS開(kāi)發(fā)添加新手引導(dǎo)的實(shí)例代碼的文章就介紹到這了,更多相關(guān)ios新手引導(dǎo)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
iOS使用pageViewController實(shí)現(xiàn)多視圖滑動(dòng)切換
這篇文章主要為大家詳細(xì)介紹了iOS使用pageViewController實(shí)現(xiàn)多視圖滑動(dòng)切換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06
Objective-C方法的聲明實(shí)現(xiàn)及調(diào)用方法
這篇文章主要介紹了Objective-C方法的聲明實(shí)現(xiàn)及調(diào)用方法,包括五參數(shù)的方法和單個(gè)參數(shù)的方法,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-02-02
詳細(xì)整理iOS中UITableView的性能優(yōu)化
最近在微博上看到一個(gè)很好的開(kāi)源項(xiàng)目,是關(guān)于如何優(yōu)化UITableView的,加上正好最近也在優(yōu)化項(xiàng)目中的類似朋友圈功能這塊,思考了很多關(guān)于UITableView的優(yōu)化技巧,所以決定詳細(xì)的整理下對(duì)優(yōu)化UITableView的理解,需要的朋友們可以參考借鑒。2017-03-03
iOS實(shí)現(xiàn)新年抽獎(jiǎng)轉(zhuǎn)盤(pán)效果的思路
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)抽獎(jiǎng)轉(zhuǎn)盤(pán)效果的思路,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
iOS開(kāi)發(fā)之?dāng)r截URL轉(zhuǎn)換成本地路由模塊URLRewrite詳解
這篇文章主要給大家介紹了關(guān)于iOS開(kāi)發(fā)之?dāng)r截URL轉(zhuǎn)換成本地路由模塊URLRewrite的相關(guān)資料,這是最近在工作中遇到的一個(gè)需求,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起看看吧。2017-08-08
ios彈幕高效加載實(shí)現(xiàn)方式實(shí)例代碼
看到密密麻麻的彈幕第一印象就是怎么樣高效加載來(lái)避免卡頓,這篇文章主要介紹了ios彈幕高效加載實(shí)現(xiàn)方式實(shí)例代碼,有興趣的可以了解一下。2017-03-03
iOS自定義相機(jī)實(shí)現(xiàn)拍照、錄制視頻
這篇文章主要為大家詳細(xì)介紹了iOS自定義相機(jī)實(shí)現(xiàn)拍照、錄制視頻,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04

