一个iOS Widget的例子——显示新闻列表

iOS14终于发布了,这次iOS对桌面进行了大刀阔斧的改革,其中一个重大变化就是提供了WidgetKit,允许用户开发桌面组件。

经过一周的学习和实(cǎi)践(kēng),我们开发了一个简单的Widget演示程序,可以从免费API上抓取网易新闻列表并显示在Widget上。当用户点击列表中的新闻时,打开主APP并显示新闻的内容。

Widget的界面如下图所示,不同尺寸的Widget下有不同的布局。


界面预览

简单说两句踩的坑:

1. Widget从机制上不允许频繁更新,即使把timeline设置成1分钟1次更新,系统也不会执行的。经实测,更新的频度上限大致为5分钟一次。结论:Widget不适合显示实时性很强的内容。

2. Widget上不允许显示滚动列表(List)。估计是因为上下滑动的手势会与“智能叠放”冲突吧。结论:Widget不适合展示过于复杂的内容。

3. Widget上展示的网络图片,一定要在getTimeline() 函数里就下载好,并将其保存到UIImage对象里,EntryView在界面布局里直接显示这个UIImage就可以了。(见例程)

4. 不要指望KingFisher能代你解决图片预下载的问题。如果在布局中使用KFImage的话,有时可以显示图片,有时则显示不出来,很不稳定。而且KingFisher和Alamofire在Xcode12下还有命名冲突的问题。


项目源码地址:iOSWidgetSample   您要是觉得有用就帮给点个星吧🌟🌟!

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