【问题标题】:CATransform3DScale Recognizer Cannot recogniseCATransform3DScale 识别器无法识别
【发布时间】:2016-04-02 03:20:29
【问题描述】:

我在 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) 会影响我的识别器,如果我删除此行一切正常。有人知道为什么吗?

【问题讨论】:

    标签: ios scrollview gesture layer catransform3d


    【解决方案1】:

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

    缩放是使用乘法计算的,所以为了导致“z轴上没有变换”,值应该是1,而不是0

    将最后一行更改为:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-11
      • 1970-01-01
      • 2018-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      • 2013-04-19
      相关资源
      最近更新 更多