169 votes

Ce qui ' s la UIScrollView contentInset propriété pour ?

Quelqu'un peut-il m’expliquer ce que la propriété contentInset dans un `` instance est utilisée pour ? Et peut-être donner un exemple ?

253voto

jball Points 14152

Il définit la distance de l'encart entre l'affichage du contenu et l'affichage de défilement de la vue. aScrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 7.0);

Voici un bon iOS Bibliothèque de Référence de l'article sur le défilement des vues qui a une valeur informative capture d'écran (fig 1-3) - je vais répliquer via le texte ici:

  _|←_cW_→_|_↓_
   |       | 
---------------
   |content| ↑
 ↑ |content| contentInset.top
cH |content|
 ↓ |content| contentInset.bottom
   |content| ↓
---------------
  _|_______|___ 
             ↑


   (cH = contentSize.height; cW = contentSize.width)

Le défilement de l'affichage, enferme le contenu de la vue ainsi que le rembourrage est fourni par le contenu des encarts.

90voto

Fabian Points 2334

Alors que jball réponse est une excellente description des incrustations de contenu, il ne répond pas à la question de savoir quand l'utiliser. Je vais emprunter à partir de ses schémas:

  _|←_cW_→_|_↓_
   |       | 
---------------
   |content| ↑
 ↑ |content| contentInset.top
cH |content|
 ↓ |content| contentInset.bottom
   |content| ↓
---------------
   |content|    
-------------↑-

C'est ce que vous obtenez lorsque vous le faites, mais l'utilité de il ne s'affiche que lorsque vous faites défiler:

  _|←_cW_→_|_↓_
   |content| ← content is still visible
---------------
   |content| ↑
 ↑ |content| contentInset.top
cH |content|
 ↓ |content| contentInset.bottom
   |content| ↓
---------------
  _|_______|___ 
             ↑

Que la ligne du haut, du contenu sera toujours visible parce qu'il est toujours à l'intérieur du cadre de défilement de la vue. Une façon de penser le dessus est compensée à "combien de déplacer le contenu vers le bas défilement de la vue lorsque nous sommes défiler tout le chemin vers le haut"

Pour voir un lieu où il est effectivement utilisé, regardez l'accumulation dans l'application Photos sur l'iphone. La barre de Navigation et la barre d'état sont transparentes, et le contenu de défilement de la vue de dessous. C'est parce que le défilement de l'affichage de l'image s'étend aussi loin. Mais si ce n'était pas pour le contenu de l'encart, vous ne serait jamais en mesure de d'avoir le top du contenu est clair que la transparence de la barre de navigation lorsque vous aller tout le chemin vers le haut.

2voto

Yar Points 25421

Grande question.

Considérez l’exemple suivant ( `` est un UIScrollView) :

Les incrustations sont le seul moyen de forcer votre molette pour avoir une « fenêtre » sur le contenu où vous le souhaitez. Je suis toujours de jouer avec cet exemple de code, mais l’idée est là : utilisez les cartons pour obtenir une « fenêtre » votre `` .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X