当前位置: 首页 > news >正文

iOS Widget简单使用

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, 100);
    //  添加一个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(50, 10, 100, 30);
    [self.view addSubview:button];
    
}

- (void)clickAction{
    self.view.backgroundColor = [UIColor redColor];
}

 

效果如图

 

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

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

最终的效果如下:

 

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

 

转载于:https://www.cnblogs.com/wb145230/p/4573851.html

相关文章:

  • FaceBook页面加载技术
  • 缴款日后流动性仍紧 央票利率再现“倒挂”
  • HIDKomponente使用读写Hid设备(转)
  • setPreferredSize和setSize的区别及用法
  • 人们为何喜欢在社交网络发布个人状态?
  • iOS常用动画
  • 信息增益的特征选择方法
  • 关于自定义强类型实体类的一点困惑
  • 记录学习MVC过程,MVC验证(四)
  • nginx 转发 header 数据丢失
  • unity5,UI Button too small on device than in Game View解决办法
  • DotNetTextBox V3.0 所见即所得编辑器控件Ver3.2.4 Free(免费版)
  • JavaScript 函数调用时带括号和不带括号的区别
  • COJ 0026 汉诺塔问题
  • 邮件服务器 之 基于Linux和Postfix的邮件系统的web mail安装手册
  • AWS实战 - 利用IAM对S3做访问控制
  • express.js的介绍及使用
  • extract-text-webpack-plugin用法
  • happypack两次报错的问题
  • javascript面向对象之创建对象
  • Next.js之基础概念(二)
  • npx命令介绍
  • ReactNative开发常用的三方模块
  • SQL 难点解决:记录的引用
  • vue自定义指令实现v-tap插件
  • 从零开始学习部署
  • 当SetTimeout遇到了字符串
  • 基于HAProxy的高性能缓存服务器nuster
  • 使用API自动生成工具优化前端工作流
  • 思维导图—你不知道的JavaScript中卷
  • Java性能优化之JVM GC(垃圾回收机制)
  • Spring第一个helloWorld
  • 选择阿里云数据库HBase版十大理由
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #WEB前端(HTML属性)
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (动态规划)5. 最长回文子串 java解决
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (剑指Offer)面试题34:丑数
  • (生成器)yield与(迭代器)generator
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (正则)提取页面里的img标签
  • (转)负载均衡,回话保持,cookie
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET delegate 委托 、 Event 事件
  • .NET Remoting学习笔记(三)信道
  • .NET 回调、接口回调、 委托
  • .NET 指南:抽象化实现的基类
  • .NET学习全景图