iOS TodayWidge开发

作者: 波罗超人 | 来源:发表于2017-01-13 16:46 被阅读0次

最近在学习点新的东西,偶然看到一篇博客说到了Today Extension ,看完那篇文章之后自己又实现了一遍,觉得还是挺有用的,避免时间久了忘记了,就写下来吧。
先说一下本篇涉及到的内容:
1、App Groups (用来两个进程之间的数据交互用的),需要配置证书。
2、Extension中怎么使用cocoapods
3、Today Extension 折叠效果

App Groups:
我们想要在两个进程之间传输一些数据,只要借助它就可以简单的实现了,首先配置一下证书


APP Groups.png

在这里新建一个APP Groups ,然后然后添加到已有的APP IDs里

2.png

新建一个singleView、再添加一个target Today Extension

3.png 4.png

完了之后应该是这个样子的

5.png

这时候运行你就会看到一个hello world 的label了,如果没有,点击编辑,把扩展添加上。这个label是系统默认的,删除掉,在MainInterface.storyboard建一个table,然后在TodayViewController里实现datasource,delegate,运行你就能看到你的table了,
前期的准备工作已经做好了,接下来我们同host app 来进行数据交互,首先打开Extension和 App的的App Groups (App的操作步骤一样)


6.png

如果之前有配置证书的话就会看到已经有了,直接勾上。
在APP中存入数据:

 NSUserDefaults*defaults = [[NSUserDefaults alloc]initWithSuiteName:@"group.com.scqc.helloToday"];
 [defaults setObject:@[@"1",@"2",@"3",@"4"] forKey:@"array"];

在扩展中取数据:

 NSUserDefaults*defaults = [[NSUserDefaults alloc]initWithSuiteName:@"group.com.scqc.helloToday"];
   _dataArray = [defaults objectForKey:@"array"];

如何在Extension中使用cocoapods呢:
其实很简单,写podfile的时候把Extension的target也写上就行了

target 'App' do
pod 'SDWebImage'
end
target 'Extension' do
pod 'SDWebImage'
end

实现一个简单的table效果,图片是用SDWebImage加载的


7.png

Tips:

8.png

第三个方法用来调节edge的,在iOS10之后便不会再调用了、edge现在可以设置为0了;
要实现折叠的效果需要设置

self.extensionContext.widgetLargestAvailableDisplayMode = NCWidgetDisplayModeExpanded;//设置可以展开

然后实现上图的第二个方法返回折叠和展开的size就可以了。

-(void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize{
    if (activeDisplayMode==NCWidgetDisplayModeExpanded) {
        // 调节成展开的状态
        self.preferredContentSize = CGSizeMake(0, 300);//这里width是不能改变的所以写0也可以
    }else{
        // 调整frame成折叠状态
        self.preferredContentSize = maxSize;
        
    }
}

相关文章

  • iOS TodayWidge开发

    最近在学习点新的东西,偶然看到一篇博客说到了Today Extension ,看完那篇文章之后自己又实现了一遍,觉...

  • iOS开发优秀博客和软件推荐

    iOSBlogAndTools iOS开发优秀博客和软件推荐 iOS开发中文博客 iOS开发工具 iOS开发网站 ...

  • 收录 : iOS支付开发

    iOS 银联支付开发流程iOS 微信支付开发流程iOS 支付宝支付开发流程iOS Apple Pay开发流程App...

  • IOS开发问题索引(四)

    全系列文章索引: IOS开发问题索引(一) IOS开发问题索引(二) IOS开发问题索引(三) IOS开发问题索引...

  • IOS开发问题索引(八)

    全系列文章索引: IOS开发问题索引(一) IOS开发问题索引(二) IOS开发问题索引(三) IOS开发问题索引...

  • IOS开发问题索引(七)

    全系列文章索引: IOS开发问题索引(一) IOS开发问题索引(二) IOS开发问题索引(三) IOS开发问题索引...

  • IOS开发问题索引(六)

    全系列文章索引: IOS开发问题索引(一) IOS开发问题索引(二) IOS开发问题索引(三) IOS开发问题索引...

  • IOS开发问题索引(五)

    全系列文章索引: IOS开发问题索引(一) IOS开发问题索引(二) IOS开发问题索引(三) IOS开发问题索引...

  • IOS开发问题索引(九)

    全系列文章索引: IOS开发问题索引(一) IOS开发问题索引(二) IOS开发问题索引(三) IOS开发问题索引...

  • IOS开发问题索引(二)

    全系列文章索引: IOS开发问题索引(一) IOS开发问题索引(二) IOS开发问题索引(三) IOS开发问题索引...

网友评论

    本文标题:iOS TodayWidge开发

    本文链接:https://www.haomeiwen.com/subject/ywjsbttx.html