最近接到公司領(lǐng)導(dǎo)的要求, 要搭建一個(gè)公司移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)平臺(tái), 我iOS這邊除了要編寫(xiě)公司iOS開(kāi)發(fā)規(guī)范文檔, 接口規(guī)范文檔, 應(yīng)用上架流程等相關(guān)文檔外, 還要提供一些封裝好的框架、業(yè)務(wù)組件等等, 目的是以后公司開(kāi)發(fā)app時(shí)候重復(fù)模塊或功能或界面能夠直接拿來(lái)導(dǎo)入使用, 減少編碼量, 提高開(kāi)發(fā)效率.
之前由于項(xiàng)目進(jìn)度比較緊張, 沒(méi)有時(shí)間來(lái)自己封裝這樣一些東西, 雖然這些功能網(wǎng)上一搜一大堆, 但是自己封裝的可控性會(huì)更高一些, 也是對(duì)編碼能力的一種提煉和提升, 所以我想記錄一下這個(gè)過(guò)程.
從頭弄起吧, 首先弄的是首次打開(kāi)app的歡迎引導(dǎo)頁(yè), 這基本是每個(gè)app都需要的, 如下圖:
這是一個(gè)SHWelcomePageController, 里面提供以下屬性及初始化方法:
/// 可通過(guò)NSUserDefault取得這個(gè)key的bool值, 判斷是否第一次啟動(dòng)app,
/// 不等于YES時(shí)候表示是第一次啟動(dòng), 否則不是第一次啟動(dòng)
static NSString *SHWelcomeIsLaunchDefaultKey = @"isLaunch";
@interface SHWelcomePageController : UIViewController
/// 翻頁(yè)小圓點(diǎn), 可自行設(shè)置它的參數(shù)
@property (nonatomic, weak)UIPageControl *pageControl;
/// "立即體驗(yàn)"按鈕, 可自行設(shè)置位置及樣式參數(shù), 默認(rèn)是"立即體驗(yàn)"
@property (nonatomic, weak)UIButton *showRootControllerBtn;
/**
初始化方法
@param imageArr 圖片名稱(chēng)的字符串?dāng)?shù)組
@param rootVC 點(diǎn)擊"立即體驗(yàn)"后跳轉(zhuǎn)的控制器
@return 歡迎頁(yè)控制器
*/
- (SHWelcomePageController *)initWithImageNameArray:(NSArray *)imageArr rootViewController:(UIViewController *)rootVC;
使用方法:
使用時(shí)候只需把demo里面的SHWelcomePageController這個(gè)文件夾拖到項(xiàng)目中, 然后在appDelegate里面判斷是否首次啟動(dòng)app并初始化.
SHWelcomePageController提供SHWelcomeIsLaunchDefaultKey這個(gè)東西, 它是userDefault里面的一個(gè)key, 當(dāng)點(diǎn)擊立即體驗(yàn)進(jìn)入app首頁(yè)后, SHWelcomePageController內(nèi)部會(huì)自動(dòng)修改這個(gè)key值, 使用者可以判斷這個(gè)key值來(lái)知道是否首次啟動(dòng)app.
SHWelcomePageController提供pageControl和showRootControllerBtn兩個(gè)屬性, 使用者可以自行設(shè)置小圓點(diǎn)和"立即體驗(yàn)"按鈕的樣式顏色和位置等等.
具體使用代碼如下圖:
- (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];
// 通過(guò)取SHWelcomeIsLaunchDefaultKey的值來(lái)判斷是否首次啟動(dòng)app
if ([defaults boolForKey:SHWelcomeIsLaunchDefaultKey] != YES) {
// 是第一次啟動(dòng)
NSArray *imgArr = @[@"welcome1", @"welcome2", @"welcome3"];
SHWelcomePageController *welcomeVC = [[SHWelcomePageController alloc] initWithImageNameArray:imgArr rootViewController:homeVC];
// 可自行設(shè)置小圓點(diǎn)的位置及屬性, "立即體驗(yàn)"按鈕的位置及屬性
// welcomeVC.pageControl.currentPageIndicatorTintColor = [UIColor redColor];
// [welcomeVC.showRootControllerBtn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
self.window.rootViewController = welcomeVC;
}else{
// 不是第一次啟動(dòng)
self.window.rootViewController = homeVC;
}
[self.window makeKeyAndVisible];
return YES;
}
Demo下載地址:
https://github.com/imbawales/SHWelcomePageController/tree/master
老實(shí)說(shuō), 簡(jiǎn)書(shū)錢(qián)包有30塊, 但是至少要100塊才能提現(xiàn), 所以求打賞啊~