2014年2月20日 星期四

快速判斷 4" / 3.5" @iOS


紀錄一下方便 C/P

把下列 Code 加入  projectname_prefix.pch 內

#define IS_FOUR_INCH     ([UIScreen mainScreen].bounds.size.height == 568)


之後在要使用的地方只要

if(IS_FOUR_INCH){
    
  //do something in 4" screen

}
else{

  //do something in 3.5" screen

}

2014年2月13日 星期四

iOS 7 multitasking (Background fetch mode)

原文網址 : http://hayageek.com/ios-background-fetch/

用法請參照上面網址,

簡單說明這功能為可以在使用者不知道的情況下更新 App 的內容(或做些其他的事)

條件是

1. App 被執行過,在背景也可。

2. 只有 30 秒的時間。

3. 你無法指定何時執行,只能設定最小時間間隔,系統會自動判斷何時執行相關程式片段。


評:在很多情況下善加利用此功能自動更新App內容可以讓使用者有種  WOW ~ 好順暢的感覺

補充:http://www.slideshare.net/tuoitrecomvn/4-whatsnewinios7m4multitaskingslides

2014年2月10日 星期一

取得 App 目前版本 @ iOS7

方便 Copy/Paste


[[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString*)kCFBundleVersionKey]

MFMailComposeViewController @ iOS7

每次要用到都會忘記,隨手記一下好了方便 Copy/Paste

有許多是本公司自有的 Object,大家可以忽略掉,改成自已的Code

1.
MessageUI.framework


2.
#import <MessageUI/MessageUI.h>

3.
if ([MFMailComposeViewController canSendMail]) {
        
        MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
        controller.mailComposeDelegate = self;

        
        [controller setToRecipients:[NSArray arrayWithObjects:@"xcoder.tw@gmail.com", nil]];
        [controller setSubject:@"信件主指"];
        
        [controller setMessageBody:[NSString stringWithFormat:@"請填寫以下項目\nApp版本:%@ \n裝置型號: \n系統版本: \n電信商:",[[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString*)kCFBundleVersionKey]] isHTML:NO];
        
        
        [self presentViewController:controller animated:YES completion:^{
            //nil
        }];
    }
    else {
        
        [UIAlertView Dai_alertViewWithTitle:@"無法使用寄信功能。" message:@"請確認您裝置上的信箱是已設定。" cancelButtonTitle:@"確定"];
        
    }


Delegate:
4.
#pragma mark MFMail delegate
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
    
    switch (result) {
        case MFMailComposeResultCancelled:
        {
            [GlobalFunctions HUDStartWithString:@"取消寄信。" dismissAfterDelay:2.0f];
            
        }
            break;
        case MFMailComposeResultSaved:
        {
            [GlobalFunctions HUDStartWithString:@"信件已儲存。" dismissAfterDelay:2.0f];

        }
            break;
        case MFMailComposeResultSent:
        {
            [GlobalFunctions HUDStartWithString:@"成功送出,感謝您的寶貴意見。" dismissAfterDelay:2.0f];

        }
            break;
        case MFMailComposeResultFailed:
        {
            [GlobalFunctions HUDStartWithString:@"傳送失敗,請再試一次。" dismissAfterDelay:2.0f];

        }
            break;
        default:
            break;
    }
    [self dismissViewControllerAnimated:YES completion:nil];
    
}