2016-11-12 4 views
0

Ich versuche meine Bildansicht zu vergrößern, während ich den Bildlauf über den oberen Bildschirmrand scrolle. Hier ist mein Code:Swift: Wie zoome ich ein Bild, wenn ich im Bildlauf nach oben scrolle

func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    let offset = scrollView.contentOffset.y 
    if (offset <= 0) { 
     let ratio: CGFloat = -offset*1.0/UIScreen.main.bounds.height 
     self.coverImageView.transform = CGAffineTransform(scaleX: 1.0 + ratio, y: 1.0 + ratio) 
    } 
} 

dieser Funktion wird ein Bild, wie ich nach oben, sondern weil ich bin auch Scrollen nach oben, meiner Sicht geht nach unten, und zeigt den weißen Hintergrund hinter dem Bild, wie es erweitert. Wie verhindere ich das?

Antwort

0

Es klingt wie eine Scroll-Ansicht ist nicht wirklich geeignet, was Sie versuchen zu tun. Wie wäre es stattdessen mit einer Gestenerkennung? Etwas in dieser Richtung:

override func viewDidLoad() { 
    super.viewDidLoad() 
    coverImageView.isUserInteractionEnabled = true 
    let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(didPan)) 
    coverImageView.addGestureRecognizer(panGestureRecognizer) 
} 

func didPan(panGestureRecognizer: UIPanGestureRecognizer) { 
    let translation = panGestureRecognizer.translation(in: coverImageView) 
    if translation.y > 0 { 
    let zoomRatio = (translation.y * 0.1) + 1.0 
    coverImageView.transform = CGAffineTransform(scaleX: zoomRatio, y: zoomRatio) 
    } 
} 

Sie werden um zu spielen, um es genau zu verhalten zu bekommen, wie Sie wollen, aber es sollte genug sein, um Sie zu erhalten begonnen.

Verwandte Themen