2017-12-05 2 views
0

Ich entwickle eine kleine Anwendung für tvOS, wo ich ein UITextView zeigen muss.Swift contentOffset scroll

Leider kann dieser Text manchmal nicht in den Bildschirm passen, deshalb brauche ich eine Möglichkeit, programmgesteuert zum unteren Ende zu scrollen.

Ich habe versucht, den folgenden Code:

self.setContentOffset(offset, animated: true) 

Es ist tatsächlich wie beabsichtigt, mit Ausnahme der Tatsache, dass ich die Animationsgeschwindigkeit zu handhaben, so dass der Benutzer tatsächlich lesen kann; Im Moment ist es zu schnell.

Dies ist, was ich zu tun versucht, aber mit wenig Erfolg:

let offset = CGPoint(x: 0, y: contentSize.height - bounds.size.height) 
UIView.animate(withDuration: 4, animations: { 
    self.setContentOffset(offset, animated: false) 
}) 

Ich brauche einen Weg, um den Text in Position zu halten und bewegen sie die fehlenden Zeilen zu zeigen.

Ich verwende ein UITextView in einem UIScrollView.

Danke.

Antwort

0

Wenn jemand nach einer Lösung suchen, dann ist das, was ich am Ende mit:

var textTopDistance = 100 
//calculate height of the text not being displayed 
textNotVisibleHeight = descriptionLabel.contentSize.height - scrollView.bounds.size.height 

func scrollText() { 
    //start new thread 
    DispatchQueue.main.async() { 
     //animation 
     UIView.animate(withDuration: 6, delay: 2, options: UIViewAnimationOptions.curveLinear, animations: { 
      //set scrollView offset to move the text 
      self.scrollView.contentOffset.y = CGFloat(self.textNotVisibleHeight - self.textTopDistance) 
     }, completion: nil) 
    } 
} 

Es ist nicht perfekt Ich weiß, aber zumindest es funktioniert wie vorgesehen.

Verwandte Themen