TagiOS

iOS7 UI 元素的調整

iOS7 有一些 UI 的部分需要針對不同 OS 版本去做調整,最近想說來改改之前的程式碼,因此順便解決判斷螢幕大後對元素配置後,view 的底部不能點擊的問題:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) { 
self.window.bounds = CGRectMake(0.0f,-40.0f,[[UIScreen mainScreen] bounds].size.width ,[[UIScreen mainScreen] bounds].size.height);     
//self.window.bounds = [[UIScreen mainScreen] bounds]; 
}

用 NSUserDefaults 判斷 iOS app 使用者的第一次執行

很多時候我們必須在使用者第一次打開 app 時做一些事情,例如使用的導覽或是資料的處理,這篇介紹的方法則是和網站記錄 cookie 的方式類似 (第一次進到某些網站會有介紹導覽,之後因為有 cookie 存在瀏覽器記錄就不會再顯示)

 

可以在專案 appdelegate.m 中找到 「application:didFinishLaunchingWithOptions:」 方法,把下面的程式碼添加到裡面 (加在程式的起始位置):

if (![[NSUserDefaults standardUserDefaults] boolForKey:@"everLaunched"]) {
 	[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"everLaunched"]; 
	[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstLaunch"]; } 
else{ 	
        [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"firstLaunch"]; 
}

上面用 2 個 key:@”everLaunched” 和 @”firstLaunch” 來判斷使用者是否登錄過,在第一次啟動的時候 key @”everLaunched” 不會被賦值的,並且設置為 YES. @”firstLaunch” 被設置為 YES.

並在程式需要判斷的部分加入以下代碼:

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]) {       
  // 這裡判斷是否第一次       
  UIAlertView * alert =[[UIAlertView alloc]
  initWithTitle:@"第一次" 
  message:@"進入App"
  delegate:self                                            
  cancelButtonTitle:@"我知道了" 
  otherButtonTitles:nil];       
  [alert show];       
  [alert release];          
}

第一段代碼運行過後 key @”firstLaunch” 將被設置為 NO。

 

參考資料

© 2018 業餘人生日記

maintain by Chris ChenUp ↑