2010-10-13 3 views
0

J'essaie d'implémenter un UIView personnalisé qui imite le comportement de UIScrollView pour une raison quelconque. Et la question est comment puis-je montrer la bonne partie du contenu qui est représenté par la propriété contentOffset?Mise en œuvre d'un UIScrollView personnalisé

J'ai analysé UIScrollView et trouvé qu'il n'adopte aucune sous-couche entre les sous-couches ou manipule les limites et transforme les propriétés pour appliquer le décalage. J'ai méthode drawRect: de même remplacée la UIView`` comme suit, mais cela n'a pas fonctionné:

- (void)drawRect: (CGRect)rect { 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextTranslateCTM(context, -content_offset_.x, -content_offset_.y); 
} 

Alors ma question est de savoir comment UIScrollView Visionnement de la partie appropriée de son contenu? Devrais-je remplacer la méthode d'affichage de la couche ou autre? Toute suggestion serait appréciée! Et s'il vous plaît ne demandez pas "pourquoi voulez-vous faire quelque chose comme ça en premier lieu?" : D

Merci!

Répondre

1

UIScrollView modifie ses limites (il déplace l'origine autour).

-drawRect: est appelée pour dessiner le contenu de votre couche et n'affecte pas les sous-couches. Vous ne dessinez rien.

Je voudrais juste utiliser un UIScrollView si. Que faites-vous que UIScrollView ne fait pas?

+0

Oh ... vous avez raison. Je l'avais testé et je pensais que cela ne changeait pas la propriété des limites mais j'avais tort. Je fais quelque chose de similaire à l'application photo intégrée, mais un UIScrollView à l'intérieur d'un autre UIScrollView se comporte parfois très maladroitement alors je voulais en faire un personnalisé. Merci d'avoir répondu! –