优美整洁的引导页大神框架Onboard
来源:互联网 发布:win7电脑优化 编辑:程序博客网 时间:2024/05/17 03:22
Onboard
是现在github最火的引导页框架,star已经近5k,我觉得这框架挺有意思。
导语
Onboard:
一个只用几行代码就可轻松创建 它是一个美丽的和迷人的iOS框架。
!
![pic1]
使用
1、可以用CocoaPods 下载 pod 'Onboard'
2、可以直接下载pro,然后拖进项目使用
每个onboarding实例包含两个主要组件 - 背景页和内容页。背景包括静态背景图像/视频,页面控制和跳过按钮。内容页面由四个部分组成,一个图像/图标,标题,正文和操作按钮。
通过创建OnboardingContentViewController
的实例创建单个页面,为操作按钮提供标题,正文,图像,文本,以及在用户按下按钮时您想要执行的操作。如果你不想要一个按钮,你可以让按钮文本buttonText
和处理程序为nil
。
Objective-C
OnboardingContentViewController *firstPage = [OnboardingContentViewController contentWithTitle:@"Page Title" body:@"Page body goes here." image:[UIImage imageNamed:@"icon"] buttonText:@"Text For Button" action:^{ // do something here when users press the button, like ask for location services permissions, register for push notifications, connect to social media, or finish the onboarding process}];
Swift
let firstPage = OnboardingContentViewController(title: "Page Title", body: "Page body goes here.", image: UIImage(named: "icon"), buttonText: "Text For Button") { () -> Void in // do something here when users press the button, like ask for location services permissions, register for push notifications, connect to social media, or finish the onboarding process }
然后通过为项目中的本地视频文件提供背景图像或URL创建OnboardingViewController
,以及已经创建的视图控制器数组(content view controllers)来创建。然后,您可以模态显示视图(present)
Objective-C
// ImageOnboardingViewController *onboardingVC = [OnboardingViewController onboardWithBackgroundImage:[UIImage imageNamed:@"background"] contents:@[firstPage, secondPage, thirdPage]];// VideoNSBundle *bundle = [NSBundle mainBundle];NSString *moviePath = [bundle pathForResource:@"yourVid" ofType:@"mp4"];NSURL *movieURL = [NSURL fileURLWithPath:moviePath];OnboardingViewController *onboardingVC = [OnboardingViewController onboardWithBackgroundVideoURL:movieURL contents:@[firstPage, secondPage, thirdPage]];
Swift
// Imagelet onboardingVC = OnboardingViewController(backgroundImage: UIImage(named: "background"), contents: [firstPage, secondPage, thirdPage])// Videolet bundle = NSBundle.mainBundle()let moviePath = bundle.pathForResource("yourVid", ofType: "mp4")let movieURL = NSURL(fileURLWithPath: moviePath!)let onboardingVC = OnboardingViewController(backgroundVideoURL: movieUrl, contents: [firstPage, secondPage, thirdPage])
自定义
iconImageView,titleLabel,bodyLabel
,和actionButton
属性的字体,尺寸可自定义,而 pages引导页中各个组件之间的间距也是可以自定义
模糊(Blurring),掩蔽(Masking)和淡入淡出(Fading)
默认情况下,您用于背景的图像将在其上应用蒙版,使其变暗一点。这是添加一点点对比度,所以文本可以更容易看到。如果您的图片已经编辑或看起来很好,可以很容易地禁用此功能:
onboardingVC.shouldMaskBackground = NO; // defaults to YES
也可以加模糊效果到图片上
onboardingVC.shouldBlurBackground = YES; // defaults to NO
在页面之间转换时,对图标,文本和按钮应用淡入淡出效果。当您滚动时,内容淡出,下一页的内容在向内滚动时淡入。
onboardingVC.shouldFadeTransitions = YES ; //默认为NO
注意:确保在设置这些属性之前不会导致onboard 视图控制器的视图被加载,因为这些值仅在viewDidLoad调用视图控制器时生效,因此在设置此值之前进行类似
onboardingVC.view.backgroundColor = [UIColor whiteColor];
的设置操作将导致设置这些不生效。
您可以通过几种不同的组合调整这些设置,以获得所需的效果:
自动导航
如果你想,当他们按
action button
就自动移动到下一个页面中,可在任何OnboardingContentViewController
非引导页的最后一个视图控制器简单设置movesToNextViewController
属性为YES
。另外,你可以禁用通过设置swipe,swipingEnabled属性设置为NO。如果您愿意,这允许您更好地控制引导页过程。最后,如果你的设计适合没有页面控件,或者它只有一个页面,你可以设置hidePageControl
属性为YES和页面控制点(page control dots)不出现。
contentVC.movesToNextViewController = YES ; onboardingVC.swipingEnabled = NO ; onboardingVC.hidePageControl = YES ;
Skipping
如果您想跳过(skip)引导页,就要使skipping button可以点击和点击后block产生效果
onboardingVC.allowSkipping = YES;onboardingVC.skipHandler = ^{ // Dismiss, fade out, etc...};
Blocks
在某些情况下,您可能希望在引导页面( content pages)即将出现时以及出现时执行某些操作。在这种情况下,您可以在任何内容页面上设置
viewWillAppearBlock
和viewDidAppearBlock
属性来处理任何您想要的内容。
contentVC.viewWillAppearBlock = ^{ // do something when the view will appear here…}contentVC.viewDidAppearBlock = ^{ // do something when the view appears here…}
注意:暂时只支持竖屏
- 优美整洁的引导页大神框架Onboard
- Onboard,迷人的引导页样式制作库
- 关于优美的框架Laravel
- 小巧优美的ORM框架-doodads入门指南
- 杰克沃顿大神的 rxbinding框架
- 精读OSAL --按键的执行流程(hal_key.c onboard.c)
- onboard computing
- Onboard SDK
- 优美的祝词
- 优美的琴声
- 编写"优美"的SHELLCODE
- 优美的MTV动画片
- 优美的MTV动画片
- 优美的英语句子
- 优美的爱情
- 优美经典的短信
- 优美的文章
- 优美的英文歌词
- Dubbo详细介绍与安装使用过程
- 百度地图API关于两点之间连接直线上的所有点
- Web工程下读取文件的几种方法
- win10无法安装 microsoft .net framework 3.5
- hibernate的hql语句
- 优美整洁的引导页大神框架Onboard
- Tensorflow1.4安装gpu教程
- 编写游戏变速器的原理
- VTK图像基本操作-图像信息的访问与修改
- 七、Netflix Eureka && 搭建服务注册中心
- VS中使用Github全图解
- python opencv对图像进行旋转且不裁剪图片的方法
- typeScipt学习笔记(一)
- ARP攻击