-(BOOL)perfersStatusBarHidden { return YES; }
高度爲0以後,UILabel仍是可見的,UIImageView不可見html
/** * 讓數組的每個對象都執行同一個操做 * * @param aSelector 操做方法名 * @param argument 傳遞的參數 */ - (void)makeObjectsPerformSelector:(SEL)aSelector withObject:(id)argument;
等同於ios
for (int i=0; i<array.count; i++) { UIButton *btn = self.array[i]; btn.selected = NO; }
自定義的類中,經常要寫initWith....相似的構造方法,而後在裏面修改對象自己self並返回。這裏要注意的是:不能將init後面的with的首字母寫成小寫,那樣就不是構造方法了。也就不能修改對象自己了。web
//從json文件中讀取 NSString *jsonPath = [[NSBundle mainBundle]pathForResource:@"products" ofType:@"json"]; NSData *data = [NSData dataWithContentsOfFile:jsonPath]; NSArray *array = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; //將字典轉化成模型 NSMutableArray *mutableArray = [NSMutableArray array]; for (NSDictionary *dict in array) { Product *product = [Product productWithDict:dict]; [mutableArray addObject:product]; } _productArray = mutableArray;
自定義view的時候在這個方法裏面更改系統的viewjson
NSURL *url = [NSURL URLWithString:@"tel://10010"]; [[UIApplication sharedApplication] openURL:url]; 缺點 電話打完後,不會自動回到原應用,直接停留在通話記錄界面
撥號以前會彈框詢問用戶是否撥號,撥完後能自動回到原應用 NSURL *url = [NSURL URLWithString:@"telprompt://10010"]; [[UIApplication sharedApplication] openURL:url]; 缺點 由於是私有API,因此可能不會被審覈經過(儘可能不要用 )
建立一個UIWebView來加載URL,撥完後能自動回到原應用 if (_webView == nil) { _webView = [[UIWebView alloc] initWithFrame:CGRectZero]; } [_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"tel://10010"]]]; 須要注意的是:這個webView千萬不要添加到界面上來,否則會擋住其餘界面
直接跳到發短信界面,可是不能指定短信內容,並且不能自動回到原應用 NSURL *url = [NSURL URLWithString:@"sms://10010"]; [[UIApplication sharedApplication] openURL:url];
若是想指定短信內容,那就得使用MessageUI框架數組
#import <MessageUI/MessageUI.h>
if (![MFMailComposeViewController canSendText]) return; MFMessageComposeViewController *vc = [[MFMessageComposeViewController alloc] init]; // 設置短信內容 vc.body = @"吃飯了沒?"; // 設置收件人列表 vc.recipients = @[@"10010", @"02010010"]; // 設置代理 vc.messageComposeDelegate = self; // 顯示控制器 [self presentViewController:vc animated:YES completion:nil];
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result { // 關閉短信界面 [controller dismissViewControllerAnimated:YES completion:nil]; if (result == MessageComposeResultCancelled) { NSLog(@"取消發送"); } else if (result == MessageComposeResultSent) { NSLog(@"已經發出"); } else { NSLog(@"發送失敗"); } }
用自帶的郵件客戶端,發完郵件後不會自動回到原應用瀏覽器
NSURL *url = [NSURL URLWithString:@"mailto://10010@qq.com"]; [[UIApplication sharedApplication] openURL:url];
跟發短信的第2種方法差很少,只不過控制器類名叫作:MFMailComposeViewControllerapp
// 不能發郵件 if (![MFMailComposeViewController canSendMail]) return; MFMailComposeViewController *vc = [[MFMailComposeViewController alloc] init]; // 設置郵件主題 [vc setSubject:@"會議"]; // 設置郵件內容 [vc setMessageBody:@"今天下午開會吧" isHTML:NO]; // 設置收件人列表 [vc setToRecipients:@[@"643055866@qq.com"]]; // 設置抄送人列表 [vc setCcRecipients:@[@"1234@qq.com"]]; // 設置密送人列表 [vc setBccRecipients:@[@"56789@qq.com"]]; // 添加附件(一張圖片) UIImage *image = [UIImage imageNamed:@"lufy.jpeg"]; NSData *data = UIImageJPEGRepresentation(image, 0.5); [vc addAttachmentData:data mimeType:@"image/jepg" fileName:@"lufy.jpeg"]; // 設置代理 vc.mailComposeDelegate = self; // 顯示控制器 [self presentViewController:vc animated:YES completion:nil];
郵件發送後的代理方法回調,發完後會自動回到原應用框架
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error { // 關閉郵件界面 [controller dismissViewControllerAnimated:YES completion:nil]; if (result == MFMailComposeResultCancelled) { NSLog(@"取消發送"); } else if (result == MFMailComposeResultSent) { NSLog(@"已經發出"); } else { NSLog(@"發送失敗"); } }
若是想打開一些常見文件,好比html、txt、PDF、PPT等,均可以使用UIWebView打開dom
只須要告訴UIWebView文件的URL便可url
至於打開一個遠程的共享資源,好比http協議的,也能夠調用系統自帶的Safari瀏覽器:
NSURL *url = [NSURL URLWithString:@」http://www.baidu.com"]; [[UIApplication sharedApplication] openURL:url];
有時候,須要在本應用中打開其餘應用,好比從A應用中跳轉到B應用
首先,B應用得有本身的URL地址(在Info.plist中配置)
B應用的URL地址就是:YL://ios.xyl.cn
接着在A應用中使用UIApplication完成跳轉
NSURL *url = [NSURL URLWithString:@"YL://ios.xyl.cn"];
[[UIApplication sharedApplication] openURL:url];
爲了提升應用的用戶體驗,常常須要邀請用戶對應用進行評分 應用評分無非就是跳轉到AppStore展現本身的應用,而後由用戶本身撰寫評論 如何跳轉到AppStore,而且展現本身的應用 方法1 //ios7不支持 NSString *appid = @"444934666"; NSString *str = [NSString stringWithFormat: @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@", appid]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]]; 方法2 NSString *str = [NSString stringWithFormat: @"itms-apps://itunes.apple.com/cn/app/id%@?mt=8", appid]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
arc4random_uniform(256) / 255.0;