iOS8新特性擴充(Extension)應用之一——Today擴充
一、了解擴充
1、簡介
基于iOS系統的安全性考慮,其應用的資料存儲是通過沙盒模式進行的,要實作應用之間的資料共享十分困難,功能共享就更加棘手。在iOS8系統中,apple為我們提供了一個革命性的功能:擴充。我們可以通過擴充來使app間資料甚至功能進行共享。
2、幾種擴充模式
(1)今日視圖擴充:today
這個擴充也被叫做 widget。該擴充可以将今日發生的簡短消息放到消息中心的「今日」視圖裡。這個功能類似于安卓系統中的小控件,隻是安卓的可以直接放在桌面上,更加自由。示例如下:
(2)分享功能擴充
該擴充允許應用向線上服務上傳照片、連結或者其他檔案。在以前版本中,我們若要實作分享功能,必須進行複雜的操作。
(3)個性操作
通過這個功能,可以實作兩個APP中共享一些内容,例如編輯文字中的圖檔,翻譯網頁中的文字。
(4)照片操作
這個類型的擴充可以允許我們在ipone相機中拍攝的照片使用其他圖檔編輯軟體進行編輯。
(5)檔案分享
該擴充可以讓軟體将檔案儲存在各種雲存儲服務商。
(6)自定義鍵盤
允許使用者使用第三方的鍵盤輸入法。
二、ToDay擴充的建立
擴充是一個獨立的構成,和其有關的兩個概念是宿主APP和主機APP,宿主APP是擴充存放的地方,與擴充可以實作資源共享,主機APP是擴充運作的程式,例如ToDay擴充有抽屜中的Today應用進行運作。要建立一個ToDay擴充,首先我們需要建立一個宿主APP:
建立一個工程:
選擇xcode工具欄中的File->new->target
在Application Extension中有上面提到的6中擴充,我們選擇Today。
這是我們的項目中會多了一個擴充的檔案夾:
這個檔案夾中有一個ViewController,我們可以在裡面進行布局,還有一個plist檔案,可是配置擴充的一些屬性。
我們建立一個按鈕:
UIButton * btn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 100, 30)];
[btn setTitle:@"231" forState:UIControlStateNormal];
[self.view addSubview:btn];
之後我們運作這個擴充:
xcode會讓我們選擇運作擴充的主機程式,因為這是一個today類型的擴充,我們選擇Today:
運作後,在系統的通知抽屜中,就會出現我們的這個擴充:
同樣,我們可以建立tableView,imageView以及其他複雜的視圖效果,我們也可以編寫很多邏輯功能,跳轉APP等。