最近接到公司领导的要求, 要搭建一个公司移动应用开发技术平台, 我iOS这边除了要编写公司iOS开发规范文档, 接口规范文档, 应用上架流程等相关文档外, 还要提供一些封装好的框架、业务组件等等, 目的是以后公司开发app时候重复模块或功能或界面能够直接拿来导入使用, 减少编码量, 提高开发效率.
之前由于项目进度比较紧张, 没有时间来自己封装这样一些东西, 虽然这些功能网上一搜一大堆, 但是自己封装的可控性会更高一些, 也是对编码能力的一种提炼和提升, 所以我想记录一下这个过程.
从头弄起吧, 首先弄的是首次打开app的欢迎引导页, 这基本是每个app都需要的, 如下图:
welcome.gif
这是一个SHWelcomePageController, 里面提供以下属性及初始化方法:
/// 可通过NSUserDefault取得这个key的bool值, 判断是否第一次启动app,
/// 不等于YES时候表示是第一次启动, 否则不是第一次启动
static NSString *SHWelcomeIsLaunchDefaultKey = @"isLaunch";
@interface SHWelcomePageController : UIViewController
/// 翻页小圆点, 可自行设置它的参数
@property (nonatomic, weak)UIPageControl *pageControl;
/// "立即体验"按钮, 可自行设置位置及样式参数, 默认是"立即体验"
@property (nonatomic, weak)UIButton *showRootControllerBtn;
/**
初始化方法
@param imageArr 图片名称的字符串数组
@param rootVC 点击"立即体验"后跳转的控制器
@return 欢迎页控制器
*/
- (SHWelcomePageController *)initWithImageNameArray:(NSArray *)imageArr rootViewController:(UIViewController *)rootVC;
使用方法:
使用时候只需把demo里面的SHWelcomePageController这个文件夹拖到项目中, 然后在appDelegate里面判断是否首次启动app并初始化.
SHWelcomePageController提供SHWelcomeIsLaunchDefaultKey这个东西, 它是userDefault里面的一个key, 当点击立即体验进入app首页后, SHWelcomePageController内部会自动修改这个key值, 使用者可以判断这个key值来知道是否首次启动app.
SHWelcomePageController提供pageControl和showRootControllerBtn两个属性, 使用者可以自行设置小圆点和"立即体验"按钮的样式颜色和位置等等.
具体使用代码如下图:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
UIViewController *homeVC = [[UIViewController alloc] init];
homeVC.view.backgroundColor = [UIColor redColor];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// 通过取SHWelcomeIsLaunchDefaultKey的值来判断是否首次启动app
if ([defaults boolForKey:SHWelcomeIsLaunchDefaultKey] != YES) {
// 是第一次启动
NSArray *imgArr = @[@"welcome1", @"welcome2", @"welcome3"];
SHWelcomePageController *welcomeVC = [[SHWelcomePageController alloc] initWithImageNameArray:imgArr rootViewController:homeVC];
// 可自行设置小圆点的位置及属性, "立即体验"按钮的位置及属性
// welcomeVC.pageControl.currentPageIndicatorTintColor = [UIColor redColor];
// [welcomeVC.showRootControllerBtn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
self.window.rootViewController = welcomeVC;
}else{
// 不是第一次启动
self.window.rootViewController = homeVC;
}
[self.window makeKeyAndVisible];
return YES;
}
Demo下载地址:
https://github.com/imbawales/SHWelcomePageController/tree/master
老实说, 简书钱包有30块, 但是至少要100块才能提现, 所以求打赏啊~
网友评论