xcode7添加Widget注意事项
1.添加Widget让APP数据互通是报错处理
xcode->targets中的主程序中的bundle ID和today extension中的bundle id都要在开发者账号下创建,且开发者账号还要创建一个App Groups,否则会报错,如图:
图1 图2参考网址https://onevcat.com/2014/08/notification-today-widget/
2.widget中添加空间的方式(storyboard或者故事板)
添加widget系统生成的info.plist文件,默认是使用Storyboard 实现的界面;如果你想使用代码实现是界面的搭建,需更改这个配置文件,如图3:
图3在TodayViewController中的ViewDidLoad中添加:preferredContentSize = CGSizeMake(0, 80)//在设定 preferredContentSize 时,指定的宽度都是无效的,系统会自动将其处理为整屏的宽度,所以扔个 0 进去就好了,
在TodayViewController中添加:
func widgetMarginInsetsForProposedMarginInsets(defaultMarginInsets: UIEdgeInsets) -> UIEdgeInsets {
return UIEdgeInsetsMake(0, 0, 0, 0)
}
参考网址https://www.ishuo.cn/doc/ermjmiqf.html
3.widget从Assets中添加图片
widget系统生成的info.plist文件中,改成storyboard添加控件的方式,将图3中的info.plist文件修改一下
在xcode中选择Assets.xcassets文件,在xcode最右侧选择show the file inspector,选择target Membership,勾选项目中对应的today extension,结果如图:
图4然后按钮在storyboard中就可以添加Assets.xcassets中的image
参考网址http://stackoverflow.com/questions/33150654/image-not-appearing-in-today-extension-widget
4.添加Extension的PP证书
开发者账号下不但要创建一个Extension的App ID,还要创建一个Extension的PP证书安装到Xcode上
PP证书的作用就是将前面所有的证书集成于PP证书中安装到真机上