V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
parkman
V2EX  ›  iDev

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

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

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

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

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

    Core iOS7 Level2 challenge 7
    没读过用户协议,但应该不能把code放上来,抱歉。
    但搜下文档应该就清楚了
    sobigfish
        5
    sobigfish  
       2013-10-17 16:47:20 +08:00   ❤️ 1
    之前的iOS版本也可以自己用Notification 加设置实现。
    sobigfish
        6
    sobigfish  
       2013-10-17 16:53:26 +08:00
    tuoxie007
        7
    tuoxie007  
       2013-10-18 10:01:57 +08:00
    @parkman 对呀
    tangqiaoboy
        8
    tangqiaoboy  
       2013-10-29 22:05:47 +08:00   ❤️ 1
    @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
        9
    sobigfish  
       2013-10-30 10:23:08 +08:00
    @tangqiaoboy 恩,如果希望提供文字复制共享什么的 UIWebView确实很好用,其他的短文字的话UIWebView貌似有点重啦
    tangqiaoboy
        10
    tangqiaoboy  
       2013-11-05 18:09:18 +08:00
    @sobigfish 是的,短文字可以用nimbus基于core text写的NIAttributeLabel或者自己基于core text写排版。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   938 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:30 · PVG 07:30 · LAX 16:30 · JFK 19:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.