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
zhlooking
V2EX  ›  iDev

求教, iOS 中 UIImageView 显示超大图片,比如 3000*30000 大小,有什么优化的方向?看了 Apple 的一个 Sample 用了 CATiledLayer,可是显示会有一块一块出现的卡顿。大家都有什么想法么?谢谢。

  •  
  •   zhlooking · 2016-08-24 23:01:07 +08:00 · 6098 次点击
    这是一个创建于 3005 天前的主题,其中的信息可能已经有所发展或是发生改变。
    9 条回复    2016-08-25 10:26:54 +08:00
    hexor
        1
    hexor  
       2016-08-25 01:40:15 +08:00
    这么大的图片 应该切割了再动态显示比较好吧
    zhlooking
        2
    zhlooking  
    OP
       2016-08-25 01:43:53 +08:00
    @hexor 切割动态显示用到 CATiledLayer 的话显示的时候会闪一下,蛋疼的没有找到解决方法。
    wohenyingyu01
        3
    wohenyingyu01  
       2016-08-25 01:49:13 +08:00
    hexor
        4
    hexor  
       2016-08-25 01:50:29 +08:00
    @zhlooking 会闪感觉应该是默认加载的区域不够大吧, 可以找下 api 有没有相关参数调整默认加载的图片张数. 如果实在不行可以考虑自己实现一个, 切图我不知道, 动态加载的实现不是特别复杂.

    另外, 我不是开发 iOS 的.
    zhlooking
        5
    zhlooking  
    OP
       2016-08-25 02:07:03 +08:00
    @wohenyingyu01 谢谢。要考虑不压缩图片质量和宽高尺寸的情况下,那篇文章没有提到方法吧?还是我看疏漏了?
    @hexor 谢谢,方向搞对了就很好弄了。
    kitalphaj
        6
    kitalphaj  
       2016-08-25 08:21:15 +08:00
    4 楼是对的,可以提前加载额外的区域就不会闪了。
    wohenyingyu01
        7
    wohenyingyu01  
       2016-08-25 10:01:58 +08:00
    @zhlooking 不太明白为啥不压缩尺寸,图片的分辨率超过 uiimageview 的分辨率似乎没有什么意义吧?在用户缩放的过程中不断调整图片 resample 比较经济,而且不损失图片质量吧……
    wohenyingyu01
        8
    wohenyingyu01  
       2016-08-25 10:05:38 +08:00
    @wohenyingyu01 纯属个人猜想
    zhlooking
        9
    zhlooking  
    OP
       2016-08-25 10:26:54 +08:00
    @kitalphaj 主要问题是在第一次加载的时候需要显示整个图片,这个时候就需要记载全部 tiledlayer ,然后就闪了一下。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2901 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 03:34 · PVG 11:34 · LAX 19:34 · JFK 22:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.