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