iOS新浪微部落格戶端開發(1)——新特性介面
阿新 • • 發佈:2019-01-25
轉載自:http://blog.csdn.net/chy305chy/article/details/43118361
看完了MJ老師的微博專案視訊,準備自己動手寫一下,記錄開發中的一些感想。
1、首先判斷是否第一次使用該版本,如果是,先跳轉到新特性介面,否則,直接跳到主介面,程式碼:
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-
// Override point for customization after application launch.
- // 刪除storyboard後 需設定其window
- self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];
- // 1、從Info.plist中取出版本號
- NSString *versionKey = (NSString *)kCFBundleVersionKey;
- NSString *currentVersion = [NSBundle mainBundle].infoDictionary[versionKey];
-
// 2、從沙盒中取出上次儲存的版本號
- NSString *storedVersion = [[NSUserDefaults standardUserDefaults]objectForKey:versionKey];
- // 3、判斷plist中的版本號與沙盒中的版本號是否一致
- if ([version isEqualToString:storedVersion] ) {
- application.statusBarHidden = NO;
-
if ([AccountTool sharedAccountTool].currentAccount) {
- self.window.rootViewController = [[CLQMainViewController alloc]init];
- }else{
- self.window.rootViewController = [[CLQOauthController alloc]init];
- }
- }else{ // 版本號不一樣,第一次使用新版本
- [[NSUserDefaults standardUserDefaults]setObject:currentVersion forKey:versionKey];
- [[NSUserDefaults standardUserDefaults] synchronize];
- // 顯示版本新特性介面
- self.window.rootViewController = [[NewFeatureViewController alloc]init];
- }
- // window預設不顯示,不能缺少該語句
- [self.window makeKeyAndVisible];
- returnYES;
- }
注意:不使用storyboard時,需要增加以下兩行語句:
self.window = [[UIWindowalloc]initWithFrame:[[UIScreenmainScreen]bounds]];
[self.windowmakeKeyAndVisible];
2、 在新特性介面新增背景圖片、scrollView和一些按鈕、label等
使用iOS8.1 sdk,新增scrollImage時,圖片下方留有20的空白,解決方法:設定scrollView的frame為全屏:
- <span style="white-space:pre"> </span>scrollView.frame = [UIScreen mainScreen].bounds;
在做checkBox風格的按鈕時,為了使鬆開按鈕後其背景圖片不會切換,需監聽按鈕的點選事件:
- // 設定監聽事件,選中按鈕之後圖片更改,鬆開圖片不變
- [sharedButton addTarget:self action:@selector(share:) forControlEvents:UIControlEventTouchUpInside];
- #pragma mark 分享按鈕的監聽事件
- -(void)share:(UIButton *)button
- {
- button.selected = !button.selected;
- }
由於目前scrollView中只有一個image,需要設定pageControl在單個頁面時隱藏:
- pageControl.hidesForSinglePage = YES; // 單個頁面時隱藏
3、最後效果如下: