[请教] 网易新闻客户端,在设置的view controller上面设置字体大小,如何立刻改变网易新闻正文的字体的大小的?

2013-10-17 15:22:51 +08:00
 parkman
初学IOS, 请问如题的一个问题。
1. 是把设置的view controller 的 setting 值保存到磁盘上,每次重新打开网易新闻正文的时候,先读取字体大小,然后在正文中进行渲染吗
4727 次点击
所在节点    iDev
10 条回复
tuoxie007
2013-10-17 15:37:27 +08:00
我没用过网易新闻客户端,猜想的,你说的对,我另补充两条愚见
1. 对于已经打开的正文,可以在字体设置变化之后,发出一个notification,正文所在的view controller监听之,由此触发一个方法,在该方法里修改当前字体大小
2. 保存磁盘可以(注意是否需要考虑iCloud同步问题),用NSUserDefaults最简单,还能用系统的Settings,当然,也有把设置放在服务器上的
yellowV2ex
2013-10-17 15:44:07 +08:00
顺便问一下,类似网易新闻或数字尾巴或太平洋电脑客户端,打开文章内容之后,图片是会先用一个loading图代替,待图片载入完了再显示,文字也会根据图片大小保持一定的间距。
设置里可以设置图片的质量和是否允许显示图片等选项。

这种一般是怎么做的? 是一个UIWebView然后剩下的事交给JS还是怎么做呢?
parkman
2013-10-17 16:24:11 +08:00
@tuoxie007

谢谢。 你的意思是不是如果所有的正文都统一使用一种view controller,当设置改变时,在该view controller里面调用 fontchanged 方法?
sobigfish
2013-10-17 16:44:53 +08:00
监听 UIContentSizeCategoryDidChangeNotification
然后更新页面。

字体设为 UIFontTextStyleBody 或者其他的preferredFontDescriptorWithTextStyle
字体大小为0,既为系统自动调节。
应该是iOS7 更新的api,codeschool的iOS7课程正好覆盖到这个内容

Core iOS7 Level2 challenge 7
没读过用户协议,但应该不能把code放上来,抱歉。
但搜下文档应该就清楚了
sobigfish
2013-10-17 16:47:20 +08:00
之前的iOS版本也可以自己用Notification 加设置实现。
sobigfish
2013-10-17 16:53:26 +08:00
tuoxie007
2013-10-18 10:01:57 +08:00
@parkman 对呀
tangqiaoboy
2013-10-29 22:05:47 +08:00
@sobigfish dynamic type 是iOS7的方法,网易新闻支持iOS5.0+, 所以不能简单使用7.0的新API来做这件事情。
@yellowV2ex 说的比较对路,网易新闻是用UIWebView来做的,关于UIWebView内容中图片的显示,主要是通过调用native代码异步下载,然后再调到js端加载本地图片完成的,我写过一篇介绍相关技术的文章:http://blog.devtang.com/blog/2012/03/24/talk-about-uiwebview-and-phonegap/

最后回答一下楼主的问题,网易新闻客户端正文是用UIWebView来显示的,而UIWebView里面的内容实际上是html,所以切换字体可以直接用javascript换一下css样式即可。

我之前在网易工作过,和网易新闻客户端的作者也认识,所以以上内容应该不会有什么问题。
sobigfish
2013-10-30 10:23:08 +08:00
@tangqiaoboy 恩,如果希望提供文字复制共享什么的 UIWebView确实很好用,其他的短文字的话UIWebView貌似有点重啦
tangqiaoboy
2013-11-05 18:09:18 +08:00
@sobigfish 是的,短文字可以用nimbus基于core text写的NIAttributeLabel或者自己基于core text写排版。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/85885

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX