优美整洁的引导页大神框架Onboard

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wojiaoweide/article/details/78854380

Onboard是现在github最火的引导页框架,star已经近5k,我觉得这框架挺有意思。

导语

Onboard:一个只用几行代码就可轻松创建 它是一个美丽的和迷人的iOS框架。

!
![pic1]

pic2

使用

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

// Image
OnboardingViewController *onboardingVC = [OnboardingViewController onboardWithBackgroundImage:[UIImage imageNamed:@"background"] contents:@[firstPage, secondPage, thirdPage]];

// Video
NSBundle *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

// Image
let onboardingVC = OnboardingViewController(backgroundImage: UIImage(named: "background"), contents: [firstPage, secondPage, thirdPage])

// Video
let 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];的设置操作将导致设置这些不生效。

您可以通过几种不同的组合调整这些设置,以获得所需的效果:

dark.png

darkblur.png

lightblur.png

normal.png

自动导航

如果你想,当他们按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)即将出现时以及出现时执行某些操作。在这种情况下,您可以在任何内容页面上设置viewWillAppearBlockviewDidAppearBlock属性来处理任何您想要的内容。

contentVC.viewWillAppearBlock = ^{
    // do something when the view will appear here…
}
contentVC.viewDidAppearBlock = ^{
    // do something when the view appears here…
}

注意:暂时只支持竖屏

猜你喜欢

转载自blog.csdn.net/wojiaoweide/article/details/78854380