Größenänderung UiView Höhe Mit Dynamischen Inhalten in UIScrollView (Swift)
Habe ich UIView innerhalb eines UIScrollView und verbunden haben Sie vom Interface Builder:
@IBOutlet weak var articleScroll: UIScrollView!
@IBOutlet weak var articleSubview: UIView!
Habe ich dynamische Inhalte gehen in die UIView und ich will seine Höhe gezeichnet werden, der so groß ist wie der Inhalt (also Schriftrollen). Dachte ich das .Letzte zu finden Herkunft.y in Kombination mit der Höhe des Inhalt es tun würde:
var scroll = self.articleSubview
var lastItem = scroll.subviews.last as! UIView
var lastOriginY = lastItem.frame.origin.y
var lastHeight = lastItem.frame.size.height
var finalHeight = lastOriginY+lastHeight
scroll.frame = CGRectMake(0 , 0, lastItem.frame.size.width, finalHeight)
Den Aufbau gelungen, aber nichts gescrollt werden. Ich habe versucht, hinzufügen:
articleScroll.userInteractionEnabled = true
Aber es didn ' T einen Unterschied machen. Was mache ich falsch?
UPDATE:
Es wurde gelöst. Die aktuelle scroll-Ansicht in der Größe verändert werden, nicht das Kind anzeigen. Verwenden Sie nicht den Blättern.Rahmen, anstatt "contentSize" auf dem UIScrollView war der Weg zu gehen.:
self.articleScroll.contentSize = CGSizeMake(lastItem.frame.size.width, finalHeight)
- Verstehst du über die Blättern-Ansicht
contentSize
? - Sie kippte mich aus, wo genau ich den Fehler gemacht. Ich sollte in der Größe verändert die scroll-view und nicht der Inhalt. Na toll... Bitte eine Antwort geben, und ich werde es akzeptieren. Danke!!!
- Sicher, froh, dass ich in der Lage war zu joggen, die Sie in die richtige Richtung. Fügte er als Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Scroll-Fähigkeit (ist das ein Wort?) eines UIScrollView, hängt von seinem
contentSize
im Verhältnis zu seinen Grenzen Größe. Die Idee ist, dass diecontentSize
umarmen den Inhalt; wenn es größer ist als das scroll-view bounds Größe, kann der Benutzer Blättern.Ihren code nicht das
contentSize
überall. Es muss!Größenänderung Ihrer scrollen, scroll-view über eine Methode namens
scroll.scrollRectToVisible(<rect: CGRect>, animated: <Bool>)
scrollen Sie zu dem Rahmen.