ios target — weight todayWeight 开发

释放双眼,带上耳机,听听看~!

新建一个项目 然后– File – New – targe 新建一个TodayExtension


我们把新建的 叫做子项目 原来的叫做主项目 子项目是一个单独的app group证书
在子项目和主项目中 分别代开 App Groups
这里写图片描述

LsNewTarget 为创建的weight的名称 然后在子项目中 按照同样的方法添加 AppGroup

这样weight就创建好了 提示一个 如果没有证书 会报错 但是可以在模拟机上面跑

关于weight和主app之间的传值

发送

//group.com.LsNewTarget.app 这个是 appGroup的名字
NSUserDefaults* defaults = [[NSUserDefaults alloc]initWithSuiteName:@"group.com.LsNewTarget.app"];
[defaults setObject:@"321321" forKey:@"DSL"];
if ([defaults synchronize]) {
NSLog(@"发送成功");
}

接收

//group.com.LsNewTarget.app 这个是 appGroup的名字
NSUserDefaults *defaults = [[NSUserDefaults alloc]initWithSuiteName:@"group.com.LsNewTarget.app"];
[defaults objectForKey:@"DSL"];
if ([defaults objectForKey:@"DSL"]) {
_titleLabel.text = [defaults objectForKey:@"DSL"];
} else {
_titleLabel.text = @"没有取到值";
}

关于weight的折叠

//右上角的折叠按钮
if ([[UIDevice currentDevice].systemVersion integerValue]>=10) {
self.extensionContext.widgetLargestAvailableDisplayMode = NCWidgetDisplayModeExpanded;
}
//折叠的回调
- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize
{
//    NCWidgetDisplayModeCompact, // Fixed height
//    NCWidgetDisplayModeExpanded,
NSUserDefaults*defaults = [[NSUserDefaults alloc]initWithSuiteName:@"group.LsNewTarget"];
[defaults objectForKey:@"DSL"];
if (activeDisplayMode == NCWidgetDisplayModeCompact ) {
//高度最低为110
self.preferredContentSize = CGSizeMake([UIScreen mainScreen].bounds.size.width ,110);
} else {
//因为机子型号不一样所以最大搞多可能不一样,这里设置最大
self.preferredContentSize = CGSizeMake([UIScreen mainScreen].bounds.size.width ,MAXFLOAT);
}
}

调整大小

- (UIEdgeInsets)widgetMarginInsetsForProposedMarginInsets:(UIEdgeInsets)defaultMarginInsets
{
return UIEdgeInsetsMake(0, -20, 0, 0);
}

如果需要些输入框的话 需要presen 到一个新的界面就可以弹出键盘了


88

人已赞赏
iOS文章

iOS系统自带的分享功能之UIActivityViewController

2020-4-29 15:46:50

iOS文章

IOS屏幕旋转的检测与强行切换

2020-4-29 17:01:49

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索