Ho 2 confusione su ScrollView. Una è la mia domanda principale, un'altra è una confusione secondaria.Cosa sono esattamente contentOffset e contentInset di ScrollView
1.What sono esattamente contentOffse t & contentInset di ScrollView. Darò più dettagli qui sotto.
2.Io creo una ScrollView, ma sembra che la scrollView non possa rotolare in alcuna direzione. Il problema dell'offset? ? O inserto .i gli darà più dettagli di seguito
dettagli per la domanda 1:
Qualche tempo proprietà contentOffset & contentInset proprietà sembrano avere un sacco di differenza, ma quando provo a implementare alcune delle funzioni che riguardano queste due proprietà, comincio a confondermi. E faccio una semplice illustrazione qui. Puoi aiutarmi a capirlo che quale parte è compensato e quale parte è inserto: D
Dettagli per domanda 2:
Io uso seguente funzione per aggiungere uno ScrollView
func addScrollView(){
// assign a new ScrollView to "scroll" class member
scroll = UIScrollView(frame: CGRectZero)
scroll!.translatesAutoresizingMaskIntoConstraints = false
// change it to gray color to help recognising
scroll!.backgroundColor = UIColor.grayColor()
self.view.addSubview(scroll!)
//add some constraints,[you can neglect following part]
let x = NSLayoutConstraint(item: scroll!, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0)
self.view.addConstraint(x)
let y = NSLayoutConstraint(item: scroll!, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterY, multiplier: 1/2, constant: 25)
self.view.addConstraint(y)
let left = NSLayoutConstraint(item: scroll!, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.LeadingMargin, multiplier: 1, constant: 10)
self.view.addConstraint(left)
let upperSpacing = NSLayoutConstraint(item: scroll!, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Top, multiplier: 1, constant: 50)
self.view.addConstraint(upperSpacing)
let w = NSLayoutConstraint(item: scroll!, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.GreaterThanOrEqual, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 0, constant: 10)
self.view.addConstraint(w)
let h = NSLayoutConstraint(item: scroll!, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: scroll!, attribute: NSLayoutAttribute.Width, multiplier: 1, constant: 0)
self.view.addConstraint(h)
print("add scroll view Successed")
}
E non è in grado di rotolare. Può contenere solo poche cose (pulsanti o campi di testo ...) per riempire le sue dimensioni, piuttosto che mettere più cose in posti dove non possiamo vedere.
Quindi i problemi di impostazione iniziale sono &? Come posso impostare per risolvere questo? E se lo faccio, come posso aggiungere cose (pulsanti ...) ai posti non mostrati programmaticamente?
Spero che tu possa dirmi alcune cose !! Con il mio apprezzamento infinito! (Voglio dire, davvero! Mi blocco per giorni !!!)
Ciao Rob! Grazie ! E posso seguire prima 2. Ma per semplificare il terzo, voglio confermare che la dose "contenuto scorrevole" significa semplicemente la dimensione della scrollView? – Microos
No, per "contenuto scorrevole" mi riferivo a tutte le sottoview della vista di scorrimento. E se tutte queste sottoview hanno i loro vincoli completamente definiti, allora il 'contentSize' della vista di scorrimento sarà calcolato e impostato per te. Immaginiamo quindi che la tua vista di scorrimento fosse alta 480 punti, ma l'altezza (come dettata dai vincoli) di tutte le sue sottoview e la loro spaziatura aumentavano fino a 700 punti ('contentSize.height' è 700), quindi potresti Scorri verso l'alto e verso il basso di 700 punti di contenuto all'interno della visualizzazione a scorrimento di 480 punti. – Rob