作者zonble (zonble)
看板MacDev
标题Re: [问题] 请问UIScrollView卷动时文字变色
时间Sun Jan 1 00:07:14 2012
※ 引述《rabbithenry (崽子兔)》之铭言:
: 想请问各位一个问题,我苦思了好久。
: 如果我想做个UIScrollView,上面有一堆UILabel还有一个类似Mask的UIImageView(或是直接用Quartz2D画的半透明方块)
: 然後当卷动时,文字到那上面会变色,不知道这样的UI有可能做到吗?(除了全部用Quartz 2D去绘制,因为要用UIScrollView的卷动功能)
: 我有想过用CALayer可是好像找不到这样的Layer可以用,然後试过在drawRect中绘制却没办法在卷动中不断的触动。都失败
: 或是UIScrollView 在卷动的过程中可以不断抓到中间的值吗?因为我发现用NSTimer,在卷动时就会停下来...
: 麻烦各位解答一下我的疑惑了,谢谢
: http://i.imgur.com/MB5LJ.png <-- 示意图
简单解讲一下好了。
首先,一直呼叫 drawRect: 不是好方法,这样很没效率。
比较简单的作法是,我们一开始就准备好两张图片,一张是原图,
另外一张改变了原图的颜色,我们叫他变色图好了。我们把原图放
在 scrollview 当中,然後把变色图叠上去,然後在变色图上面加
个裁切范围,只会显示变色图当中的一部分。
接着,每次 scroll 的时候,去改变一下变色图被裁切的部份就好了。
图片变色:我是用 CIFilter,不过好像也可以直接在 Photoshop
先做好…。
Scroll:用 UIScrollView 的 delgate 就可以了
裁切变色图:CALayer 的 super layer 或 UIView 的 super view
比自己小的时候,就可以裁切原本的内容。
以上。
--
zonble.net
cocoa.zonble.net
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.42.177.1