很早就知道有这个现象一直也没有细研究,就直接用了个特点,写了类似UISegmentedControl的控件,下面有个光标表示当前被选中,那个光标就用的是CALayer来实现的。
最近写一个类似scrollview的滑动条,用CALayer来展示进度,效果是给人有点软绵绵的感觉。
开始我以为是scrollview的contentOffset更新不及时,把scrollViewDidScroll代理方法换成kvo去观察contentOffset的变化来改变进度条的位置,效果还是软绵绵,这会儿我知道是CALayer移动自带动画带来的影响。
查了一下,CALayer是带隐式动画的,想要去掉设置一下就好了,代码如下:
CATransaction.begin()
CATransaction.setDisableActions(true)
var rect = linet.frame
rect.origin.x = x
linet.frame = rect
CATransaction.commit()
网友评论