免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1362 | 回复: 0
打印 上一主题 下一主题

[iOS] iOS Widget简单使用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-06-16 09:25 |只看该作者 |倒序浏览
iOS的Widget类似Android的Notification设置flags为Notification.FLAG_ONGOING_EVENT后

OK,大约知道是什么意思了,现在可以开始码了.

1.创建Widget

Xcode菜单 -> File -> New -> Target.. -> 选择Today Extension


2.在plist文件里设置纯代码的Widget

删掉NSExtensionMainStoryboard字段
添加NSExtensionPrincipalClass字段,设置value为TodayViewController,当然也可以设置其他的ViewController

3.运行的时候选择Today

4.添加一些控件看看效果
  1. - (void)viewDidLoad {
  2.     [super viewDidLoad];
  3.    
  4.     //添加一个button,点击button后改变背景的颜色
  5.     UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
  6.     [button setTitle:@"点击一下" forState:UIControlStateNormal];
  7.     button.backgroundColor = [UIColor whiteColor];
  8.     [button addTarget:self action:@selector(clickAction) forControlEvents:UIControlEventTouchUpInside];
  9.     button.frame = CGRectMake(50, 10, 100, 30);
  10.     [self.view addSubview:button];
  11.    
  12. }

  13. - (void)clickAction{
  14.     self.view.backgroundColor = [UIColor redColor];
  15. }
复制代码
效果如图

看效果图你会发现,左边还空了一大块,原因是Widget默认会有一个inset,重写下面的方法就好了
  1. -(UIEdgeInsets)widgetMarginInsetsForProposedMarginInsets:(UIEdgeInsets)defaultMarginInsets {
  2.     return UIEdgeInsetsZero;
  3. }
复制代码
最终的效果如下:
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP