一、Widget总览
Widget 是 iOS8 推出第一版,在iOS 10 进行大幅度的优化
Widget可以让用户更快地访问到其感兴趣的内容,官方的说法是用来呈现功能比较简单的,交互性不强的东西,在不打扰或者中断用户使用当前应用的前提下完成自己的功能点。对于这个说法,国内的开发者表示呵呵,因为几乎所有的 Widget都绑定了对应的点击事件
二、Widget代码实现
因为 Widget 属于单独的进程,因此需要再新建一个target:File -》 New -》target

初次构建 UI 时,运行 Widget 后会发现,Widget左侧距离屏幕左侧始终有一段距离,导致效果不佳,可以通过下面的代理方法消除间距
// 取消widget默认的inset,让应用靠左
- (UIEdgeInsets)widgetMarginInsetsForProposedMarginInsets:(UIEdgeInsets)defaultMarginInsets {
return UIEdgeInsetsZero;
}
Widget 的收起、展开 则是通过这个代理方法:
/**
activeDisplayMode有以下两种
NCWidgetDisplayModeCompact, // 收起模式
NCWidgetDisplayModeExpanded, // 展开模式
*/
- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize {
if(activeDisplayMode == NCWidgetDisplayModeCompact) {
// 尺寸只设置高度即可,因为宽度是固定的,设置了也不会有效果
self.preferredContentSize = CGSizeMake(0, 110);
} else {
self.preferredContentSize = CGSizeMake(0, 310);
}
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !