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开发

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