CATransform3DScale识别器无法识别

时间:2016-04-02 03:20:29

标签: ios scrollview gesture layer catransform3d

我在scrollView上有一个imageView并在其上添加了一个点击手势,当它滚动时,imageView将变得越来越小,这里是变换的代码

       let offset = scrollView.contentOffset.y
    var avatarTransform = CATransform3DIdentity
    var headerTransform = CATransform3DIdentity
            let avatarScaleFactor = (min(offset_HeaderStop, offset)) / userImage.bounds.height / 1.4 // Slow down the animation
        let avatarSizeVariation = ((userImage.bounds.height * (1.0 + avatarScaleFactor)) - userImage.bounds.height) / 2.0
        avatarTransform = CATransform3DTranslate(avatarTransform, 0, avatarSizeVariation, 0)
        avatarTransform = CATransform3DScale(avatarTransform, 1.0 - avatarScaleFactor, 1.0 - avatarScaleFactor, 0)

我发现avatarTransform = CATransform3DScale(avatarTransform,1.0 - avatarScaleFactor,1.0 - avatarScaleFactor,0)正在影响我的识别器,如果我删除此行eveything工作正常。任何人都知道为什么?

1 个答案:

答案 0 :(得分:0)

z轴上的比例因子应大于零;将其设为零会使按钮具有“无深度”,因此无法识别触摸。 (虽然你仍然可以看到按钮)

使用乘法计算缩放比例,因此为了使“z轴上没有变换”,值应为1,而不是0

将您的最后一行更改为:

avatarTransform = CATransform3DScale(avatarTransform, 1.0 - avatarScaleFactor, 1.0 - avatarScaleFactor, 1.0)