观察图层'strokeEnd'动画事件

时间:2017-12-15 02:15:42

标签: ios animation observer-pattern

我想在动画开始时观察strokeEnd键路径。但它不起作用,我哪里出错?

toggleFilterSort() {
        this.viewCtrl.getContent().scrollTo(0, 0);
        let toggle = this.popoverCtrl.create(
                ToggleModel, 
                {toggleMenu: this.toggleMenu},
                {
                    cssClass: 'oFilter',
                    enableBackdropDismiss: true,
                    showBackdrop: true
                }
            );
        toggle.onDidDismiss(data=>{
            if(data != null && data.toggleMenu) {
                this.toggleMenu = data.toggleMenu;
            }
        });
        console.log(this.toggleMenu);
    }

1 个答案:

答案 0 :(得分:2)

当动画像“飞行中”那样时,您无法观察到动画属性的变化。该属性实际上设置为动画开头的结束值。然后有一个“表示层”放在视图的常规图层顶部,动画发生在该图层上。

你能做的最好的事情就是设置一个CADisplayLink计时器(一个与屏幕刷新率同步的轻量级计时器)并在表示层时查询属性。 (layer.presentationLayer.strokeEnd,在您的情况下。)