2016-04-02 10 views
1

Ich habe ein Imageview auf einem Scrollview und hinzugefügt es eine Tippgeste und wenn es Scroll der Imageview ist schaltet kleiner und kleiner und hier ist der Code für die TransformationCATransform3DScale Recognizer kann nicht erkennen

 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) 

ich gefunden habe, das avatarTransform = CATransform3DScale (avatarTransform, 1.0 - avatarScaleFactor, 1.0 - avatarScaleFactor, 0) betrifft meinen Erkenner, wenn ich diese Zeile lösche alles was gut funktioniert. Wer weiß warum?

Antwort

0

Der Skalierungsfaktor auf der Z-Achse sollte größer als Null sein; Wenn Sie den Wert auf Null stellen, wird die Schaltfläche "keine Tiefe" angezeigt, sodass die Berührungen nicht erkannt werden. (Sie können zwar immer noch sehen Sie die Taste)

Skalierung berechnet Multiplikation mit, so in Ordnung „keine Transformation auf z-Achse“, um zu bewirken, sollte der Wert 1, anstatt 0

Ihre letzte Zeile ändern zu:

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