2016-04-02 8 views
1

У меня есть ImageView на Scrollview и добавил водопроводную жест на него, и, когда она прокручивается в ImageView повернет все меньше и меньше, а вот код для преобразованияCATransform3DScale распознаватель не удается распознать

 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) влияет на моего распознавателя, если я удаляю эту строку, все работает отлично. Никто не знает почему?

ответ

0

Масштабный коэффициент по оси z должен быть больше нуля; Задание нуля приводит к тому, что кнопка не имеет глубины, поэтому штрихи не распознаются. (Хотя вы все еще можете увидеть кнопку)

Scaling вычисляется с помощью умножения, поэтому для того, чтобы вызвать «не преобразование на оси», то значение должно быть 1, а не 0

Измените последнюю строку до:

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