iOS的Widget类似Android的Notification设置flags为Notification.FLAG_ONGOING_EVENT后

    

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

1.创建Widget

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

  --> 

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

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

3.运行的时候选择Today

4.添加一些控件看看效果

- (void)viewDidLoad {
[super viewDidLoad];
// 设置widget的高度
self.preferredContentSize = CGSizeMake(self.view.bounds.size.width, );
// 添加一个button,点击button后改变背景的颜色
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
[button setTitle:@"点击一下" forState:UIControlStateNormal];
button.backgroundColor = [UIColor whiteColor];
[button addTarget:self action:@selector(clickAction) forControlEvents:UIControlEventTouchUpInside];
button.frame = CGRectMake(, , , );
[self.view addSubview:button]; } - (void)clickAction{
self.view.backgroundColor = [UIColor redColor];
}

效果如图

看效果图你会发现,左边还空了一大块,原因是Widget默认会有一个inset,重写下面的方法就好了

-(UIEdgeInsets)widgetMarginInsetsForProposedMarginInsets:(UIEdgeInsets)defaultMarginInsets {
return UIEdgeInsetsZero;
}

最终的效果如下:

如果你不是在wb145230博客园看到本文,请点击查看原文.

iOS Widget简单使用的更多相关文章

  1. iOS widget开发

    链接: iOS Widget开发 iOS开发之构建Widget iOS开发Widget iOS开发-widget基础 ios8新特性widget开发 ios 10 开发-widget实现 Widget ...

  2. iOS上简单推送通知(Push Notification)的实现

    iOS上简单推送通知(Push Notification)的实现 根据这篇很好的教程(http://www.raywenderlich.com/3443/apple-push-notification ...

  3. iOS CAReplicatorLayer 简单动画

    代码地址如下:http://www.demodashi.com/demo/11601.html 写在最前面,最近在看学习的时候,偶然间发现一个没有用过的Layer,于是抽空研究了下,本来应该能提前记录 ...

  4. iOS之简单瀑布流的实现

    iOS之简单瀑布流的实现   前言 超简单的瀑布流实现,这里说一下笔者的思路,详细代码在这里. 实现思路 collectionView能实现各中吊炸天的布局,其精髓就在于UICollectionVie ...

  5. iOS,手势识别简单使用

    1.iOS目前支持的手势识别(6种) 2.点按手势和慢速拖动手势简单使用 iOS目前支持的手势识别(6种) UITapGestureRecognizer(点按) UIPinchGestureRecog ...

  6. iOS - Widget 小部件

    1.Widget iOS extension 的出现,方便了用户查看应用的服务,比如用户可以在 Today 的 widgets 中查看应用的简略信息,然后点击进入相关的应用界面. 2.添加 Widge ...

  7. iOS NSData简单解析

    iOS 基本数据类型之NSData 1 nsdata 作用: 用于存储二进制的数据类型 nadat类提供一种简单的方式,它用来设置缓存区.将文件的内容读入到缓存区.或者将缓存区中的内容写到一个文件. ...

  8. iOS 多线程 简单学习NSThread NSOperation GCD

    1:首先简单介绍什么叫线程 可并发执行的,拥有最小系统资源,共享进程资源的基本调度单位. 共用堆,自有栈(官方资料说明iOS主线程栈大小为1M,其它线程为512K). 并发执行进度不可控,对非原子操作 ...

  9. iOS开发-简单工厂模式

    设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.概念很长,iOS开发中最常 ...

随机推荐

  1. ArcGIS 帮助文件中的CAD数据的说明

    专业库——地理数据类型——cad

  2. Android XMPP服务器, BOSH(Http-Binding)和WEB客户端搭建

    目标: 搭建一个XMPP服务器, 实现在web page上用javascript与自己XMPP服务器通信, 匿名登录并与任何一个XMPP(Jabber)帐户通信. (Gtalk目前尚有问题) XMPP ...

  3. 【37.07%】【UESTC 360】Another LCIS

    Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit  Status F ...

  4. MySQL忘记root密码不重启mysqld的方法

    MySQL忘记root密码不重启mysqld的方法   1.首先得有一个可以拥有修改权限的mysql数据库账号,当前的mysql实例账号(较低权限的账号,比如可以修改zabbix数据库)或者其他相同版 ...

  5. oracle2c-r2(12.2.0.1) 的镜像

    docker- 构建 oracle2c-r2(12.2.0.1) 的镜像   需求 由于公司的数据库需要使用新的oracle版本(12c-r2 -->12.2.0.1),从之前的oracle11 ...

  6. 【t040】SETI任务

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] Sqybi的电脑在做一个任务,就是SETI@home,据说这个任务在全世界有500 多万台电脑在同时做 ...

  7. CentOS虚拟机克隆后IP设置

    1.网卡设置 vim /etc/udev/rules.d/70-persistent-net.rules 将新生成的eth1改名为eth0,并将原来的eth0注释或删除,同时复制mac地址 2.IP设 ...

  8. 利用WPF建立自己的3d gis软件(非axhost方式)(三)矢量数据显示控制

    原文:利用WPF建立自己的3d gis软件(非axhost方式)(三)矢量数据显示控制 先下载SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew 密 ...

  9. base64编码转图片

    protected void Button1_Click(object sender, EventArgs e) { //strImg为base64编码的图片字符串 string strImg = & ...

  10. 你不从地址栏中增加曝光量所需的数据库ID方法

    <p><span style="font-size: 18px;"></span></p> 当你想隐藏数据库id时,你能够使用 Ha ...