WSCoachMarksView 0.2

WSCoachMarksView 0.2

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最后发布2014年12月

未命名维护。




  • Dimitry Bentsionov

WSCoachMarksView 是一个 iOS 插件类,可以在现有 UI 上显示带有矩形剪影的用户说明标签。这种方法利用您的实际 UI 作为用户引导过程的一部分。只需定义一系列矩形(CGRect)及其相应的标题即可。

HitchedPic 应用中 WSCoachMarksView 实际操作演示视频。

要求

WSCoachMarksView 在任何 iOS 版本上均可以工作,并使用 ARC 构建。它取决于以下 Apple 框架

  • Foundation.framework
  • UIKit.framework
  • QuartzCore.framework

将 WSCoachMarksView 添加到您的项目中

源代码文件

或者,您可以直接将 WSCoachMarksView.hWSCoachMarksView.m 源代码文件添加到您的项目。

  1. 下载最新的代码版本(存档)或将其作为 git 子模块添加到您的 git 跟踪项目。
  2. 在 Xcode 中打开项目,然后从“产品导航视图”拖拽 WSCoachMarksView.hWSCoachMarksView.m 到项目(当在项目外提取代码存档时,务必选择“复制项目”)。
  3. wherever you need it with #import "WSCoachMarksView.h".

使用说明

在 viewDidLoad 方法中创建一个新的 WSCoachMarksView 实例,并传入一个包含说明标签定义的数组(每个说明标签包含一个 CGRect 和其标题)。

- (void)viewDidLoad {
    [super viewDidLoad];

    // ...

    // Setup coach marks
    NSArray *coachMarks = @[
        @{
            @"rect": [NSValue valueWithCGRect:(CGRect){{0,0},{45,45}}],
            @"caption": @"Helpful navigation menu"
        },
        @{
            @"rect": [NSValue valueWithCGRect:(CGRect){{10.0f,56.0f},{300.0f,56.0f}}],
            @"caption": @"Document your wedding by taking photos"
        },
        @{
            @"rect": [NSValue valueWithCGRect:(CGRect){{10.0f,119.0f},{300.0f,56.0f}}],
            @"caption": @"Your wedding photo album"
        },
        @{
            @"rect": [NSValue valueWithCGRect:(CGRect){{10.0f,182.0f},{300.0f,56.0f}}],
            @"caption": @"View and manage your friends & family"
        },
        @{
            @"rect": [NSValue valueWithCGRect:(CGRect){{10.0f,245.0f},{300.0f,56.0f}}],
            @"caption": @"Invite friends to get more photos"
        },
        @{
            @"rect": [NSValue valueWithCGRect:(CGRect){{0.0f,410.0f},{320.0f,50.0f}}],
            @"caption": @"Keep your guests informed with your wedding details"
        }
    ];
    WSCoachMarksView *coachMarksView = [[WSCoachMarksView alloc] initWithFrame:self.view.bounds coachMarks:coachMarks];
    [self.view addSubview:coachMarksView];
    [coachMarksView start];
}

请确保将说明标签视图添加到最顶层的控制器。如果您有导航控制器,则使用

WSCoachMarksView *coachMarksView = [[WSCoachMarksView alloc] initWithFrame:self.navigationController.view.bounds coachMarks:coachMarks];
[self.navigationController.view addSubview:coachMarksView];
[coachMarksView start];

您可以在显示之前使用 start 方法配置 WSCoachMarksView。例如

coachMarksView.animationDuration = 0.5f;
coachMarksView.enableContinueLabel = NO;
[coachMarksView start];

仅向用户显示一次说明标签的示例(假定在 viewDidLoad 中创建了 coachMarksView

- (void)viewDidAppear:(BOOL)animated {
    // Show coach marks
    BOOL coachMarksShown = [[NSUserDefaults standardUserDefaults] boolForKey:@"WSCoachMarksShown"];
    if (coachMarksShown == NO) {
        // Don't show again
        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"WSCoachMarksShown"];
        [[NSUserDefaults standardUserDefaults] synchronize];

        // Show coach marks
        [coachMarksView start];

        // Or show coach marks after a second delay
        // [coachMarksView performSelector:@selector(start) withObject:nil afterDelay:1.0f];
    }
}

配置

coachMarks(NSArray)

修改说明标签。

lblCaption(UILabel)

访问字幕标签。

maskColor(UIColor)

蒙版的颜色(默认:0,0,0 alpha 0.9)。

animationDuration(CGFloat)

转换动画到下一个说明标签的持续时间(默认:0.3)。

cutoutRadius (CGFloat)

裁剪矩形半径(默认:2px)。

maxLblWidth (CGFloat)

将标题标签的最大宽度设置为230px。行数将根据标题内容自动计算。

lblSpacing (CGFloat)

定义标题标签在裁剪上方或下方的距离(默认:35px)。

enableContinueLabel (BOOL)

默认情况下,“点击继续”标签会弹出,以引导用户在第一个引导标记上(默认:YES)。

WSCoachMarksViewDelegate

如果您需要在特定的引导标记进入视图时执行某个操作,您可以实施 WSCoachMarksViewDelegate。

1. 使您的视图控制器符合 WSCoachMarksViewDelegate 协议

@interface WSMainViewController : UIViewController <WSCoachMarksViewDelegate>

2. 将代理分配给您的引导标记视图实例

coachMarksView.delegate = self;

3. 实现代理协议方法

注意:所有方法都是可选的。仅实现所需的方法。

  • - (void)coachMarksView:(WSCoachMarksView*)coachMarksView willNavigateToIndex:(NSInteger)index
  • - (void)coachMarksView:(WSCoachMarksView*)coachMarksView didNavigateToIndex:(NSInteger)index
  • - (void)coachMarksViewWillCleanup:(WSCoachMarksView*)coachMarksView
  • - (void)coachMarksViewDidCleanup:(WSCoachMarksView*)coachMarksView

许可

此代码根据 MIT 许可证的条款和条件进行分发。

更改日志

版本 0.2 @ 4/13/13

  • 添加了 WSCoachMarksViewDelegate 协议。

版本 0.1 @ 4/1/13

  • 初始发布。