这个教程视图旨在添加到单个 ViewController 中,以解释其用户元素。在滑动教程时,每一页都会在你的用户界面中揭露一个元素,并显示说明。
要运行示例项目,请克隆仓库,并首先从 Example 目录中运行 pod install
。
以下是添加教程到您的视图控制器中的短代码片段。首先,像这样包含头文件
#import <DVITutorialView/DVITutorialView.h>
假设您在屏幕上的某个地方有一个帮助按钮,把以下代码放入您视图控制器中的动作方法内。
- (IBAction)tutorialButtonTapped:(id)sender
{
DVITutorialView *tutorialView = [[DVITutorialView alloc] init];
[tutorialView addToView:self.view];
tutorialView.tutorialStrings = @[
@"Explanation on button",
@"Explanation on this nice label",
@"Some text on the text field",
@"and finally, what this label is about",
@"And a thank you on a blank screen",
];
tutorialView.tutorialViews = @[
self.button1,
self.label1,
self.textField1,
self.label2
[[UIView alloc] init], // No exposed UI elements
];
[tutorialView start];
// Or alternatively:
// [tutorialView startWithCompletion:^(){
// NSLog(@"The End!");
// }];
}
有时,您有自定义视图,您只想公开其一部分。在您的自定义视图的头文件中将此代码放入
@property (readonly) CGRect visibleFrame;
- (NSValue*)visibleFrameAsValue;
并在自定义视图的主体中放入以下代码
- (NSValue*)visibleFrameAsValue
{
NSValue *value = [NSValue valueWithCGRect:self.visibleFrame];
return value;
}
-(void)layoutSubviews
{
float margin = 50.0;
_visibleFrame = CGRectInset(self.frame, margin, margin);
[super layoutSubviews];
}
然后,教程类不会公开视图的框架,而是调用 visibleFrameAsValue 和(在上面的示例中)公开减去 50 点边距的框架。
您的项目需要使用 Auto Layout。我只在 iOS 8 上进行了测试。
使用 QuickTime 屏幕录制制作的演示,使用以下方法将生成的 .mov 文件转换为动画 gif
ffmpeg -i demo.mov -r 15 demo.gif
Bart van Kuik,[email protected]
DVITutorialView 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。