IOS Widget 开发笔录

IOS widget开发笔录

刚完成IOS widget开发,仿照UC头条,头条日报widget,附上效果图:

折叠效果图


展开效果图

目前实现的功能便是,如折叠效果图,左右两边的箭头可以进行图片和标题的切换;在展开图中,“换一批”按钮可以根据显示的数组数目,整组切换,当然,如果只有3组图片,这按钮会进行随机排序再显示。大于3组,例如4组,假设1,2,3,4。显示的是1,2,3,切换后便是4,1,2。“查看更多”则是跳转到应用内部,点击cell也是会跳到应用中。


如何实现,就不多说了,网上的教程很多。在此记录下开发中遇到的问题:

1:折叠的高度。不论是5,5s,6,6p等,都是110。

2:展开按钮。在widget初始化的时候,最好能够使用:

if([self.extensionContext respondsToSelector:@selector(setWidgetLargestAvailableDisplayMode:)]) {

self.extensionContext.widgetLargestAvailableDisplayMode = NCWidgetDisplayModeExpanded;

}

把widget最为展开模式,不然的话,就有可能不显示右上角的折叠展开的按钮。

3:适配6p的横屏。这是个很蛋疼的事情。首先,横屏和竖屏的frame值是会改变的,就需要接收到屏幕旋转的通知,在尝试了诸多方法后,

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id)coordinator{}

-(void)viewDidLayoutSubviews{}

这两个方法是屏幕旋转后会触发的方法,在这两个方法里面自行判断下当前屏幕的尺寸,就知道是否为横竖屏。就可以调整控件的frame值了。

4:3dTouch。若想要在3dtouch中显示你想要展示的widget,只需要在项目的plist文件中进行修改。


后面是widget的bundle id

5.头文件导入。在widget中创建PrefixHeader.pch文件,并在build settings - AppleLLVM 8.0-Language - Prefix Header中加入文件的路径:widget名称/PrefixHeader.pch即可

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容