一.什么是Widget?
百度百科:
其實Widget就是一個小組件,獨立于應(yīng)用之外的又一個新小應(yīng)用,但是和主應(yīng)用之間又有著一定的關(guān)系
效果圖:
下面估計大家都知道是3DTouch,而上面的就是Widget
二.那么怎么實現(xiàn)?
1.首先因為Widget是一個獨立的小應(yīng)用,因此證書也需要另外的一套,也就是說如果你要開發(fā)帶有這樣功能的APP,你需要兩套證書,一套是主項目的,另外一套是widget的,至于證書的創(chuàng)建,在這里我就不多說了,具體流程大家可以網(wǎng)上去找.
主項目證書的創(chuàng)建流程和普通的創(chuàng)建流程一樣,widget的證書創(chuàng)建流程和主項目的創(chuàng)建流程有一點區(qū)別
首先:
注意一:
Bundle ID:widget的Bundle Id是在主項目的Bundle ID的基礎(chǔ)上加的,例:
主項目:
widget:
注意二:widget的App ID創(chuàng)建的時候要配置 App Groups項,例:
主項目:
widget:
至于怎么配置,其實很簡單,大家在創(chuàng)建APP ID的時候,在下面第一項勾選App Groups
創(chuàng)建APP ID之后,需要去創(chuàng)建一個App Groups
然后把創(chuàng)建后的App Groups配置到對應(yīng)的APP ID里面即可,這樣證書就可以使用了
2.接下來,就是創(chuàng)建一個項目或者是在你想要添加widget的項目里面找到
選擇
這個時候,你會看到項目目錄里面多了
配置之前給Widget添加的App Groups
對于 我來說,習(xí)慣了純代碼去開發(fā),所以,果斷刪掉storyboard
其實這個時候你運行項目,已經(jīng)有效果了
細心的人,可能還有這么個發(fā)現(xiàn):
這個日歷有一個展開和折疊的效果,那么怎么實現(xiàn)的呢,看下面
調(diào)整widget內(nèi)邊距
刷新數(shù)據(jù)
跳轉(zhuǎn)到主應(yīng)用
widget項目:
主項目:
至于兩者之間的傳值,這里不多講
最終效果:
如果widget里面要使用主項目里面的類,需要做下面操作