WSCoachMarksView 使用教程
项目介绍
WSCoachMarksView 是一个 iOS 的插件类,用于在现有 UI 上显示用户引导标记,通过在 UI 上创建矩形镂空区域来突出显示特定部分。这种方法利用了应用程序的实际 UI 作为用户引导过程的一部分,只需定义一组矩形(CGRect)及其伴随的说明文本。
项目快速启动
安装 WSCoachMarksView
使用 CocoaPods
推荐使用 CocoaPods 来添加 WSCoachMarksView 到你的项目中。在你的 Podfile 中添加以下行:
pod 'WSCoachMarksView', '~> 0.2'
然后运行以下命令安装 pod:
pod install
手动添加源文件
你也可以直接将 WSCoachMarksView.h 和 WSCoachMarksView.m 源文件添加到你的项目中。下载最新版本的代码或将其作为 git submodule 添加到你的项目中。在 Xcode 中打开你的项目,然后将 WSCoachMarksView.h 和 WSCoachMarksView.m 拖放到你的项目中(使用“Product Navigator view”)。确保在询问时选择“Copy items if needed”。
使用 WSCoachMarksView
在你的视图控制器的 viewDidLoad
方法中创建一个新的 WSCoachMarksView 实例,并传入一组引导标记定义(每个定义包含一个 CGRect 和一个伴随的说明文本):
- (void)viewDidLoad {
[super viewDidLoad];
// Setup coach marks
NSArray *coachMarks = @[
@{
@"rect": [NSValue valueWithCGRect:CGRectMake(0, 0, 45, 45)],
@"caption": @"Helpful navigation menu"
},
@{
@"rect": [NSValue valueWithCGRect:CGRectMake(10, 56, 300, 56)],
@"caption": @"Another feature to highlight"
}
];
WSCoachMarksView *coachMarksView = [[WSCoachMarksView alloc] initWithFrame:self.view.bounds coachMarks:coachMarks];
[self.view addSubview:coachMarksView];
[coachMarksView start];
}
应用案例和最佳实践
显示引导标记一次
为了确保引导标记只显示一次,可以使用 NSUserDefaults
来记录引导标记是否已经显示过:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
// Show coach marks
BOOL coachMarksShown = [[NSUserDefaults standardUserDefaults] boolForKey:@"WSCoachMarksShown"];
if (!coachMarksShown) {
NSArray *coachMarks = @[
@{
@"rect": [NSValue valueWithCGRect:CGRectMake(0, 0, 45, 45)],
@"caption": @"Helpful navigation menu"
}
];
WSCoachMarksView *coachMarksView = [[WSCoachMarksView alloc] initWithFrame:self.view.bounds coachMarks:coachMarks];
[self.view addSubview:coachMarksView];
[coachMarksView start];
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"WSCoachMarksShown"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
}
实现代理协议
你可以实现 WSCoachMarksView 的代理协议方法来进一步自定义引导标记的行为:
@interface YourViewController () <WSCoachMarksViewDelegate>
@end
@implementation YourViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSArray *coachMarks = @[
@{
@"rect": [NSValue valueWithCGRect:CGRectMake(0, 0, 45, 45)],
@"caption": @"Helpful navigation menu"
}
];
WSCoachM