[Objective-C] UIScrollView: comment centrer la vue?
février 23, 2009
C’est une problématique que vous avez peut être rencontrée. Créer une ScrollView avec une image et vouloir que la vue soit centrer sur un point précis de l’image. Et bien pour cela, il faut créer une nouvelle classe héritant de UIScrollView et de redéfinir la fonction setContentOffset.
Dans mon exemple je créer la classe MyScroll.
I) MyScroll.h
#import
@interface MyScroll : UIScrollView {
UIView *contentView;
}
@property(nonatomic, readonly, retain) UIView *contentView;
@end
II) MyScroll.m
#import "MyScroll.h"
@implementation MyScroll
@synthesize contentView;
-(void)setContentOffset:(CGPoint)p
{
if(self.contentView != nil)
{
CGSize viewSize = self.contentView.frame.size;
CGSize scrollSize = self.bounds.size;
if(viewSize.width < scrollSize.width)
{
p.x = -(scrollSize.width - viewSize.width) / 2.0;
}
if(viewSize.height < scrollSize.height)
{
p.y = -(scrollSize.height - viewSize.height) / 2.0;
}
}
super.contentOffset = p;
}
- (void)dealloc {
[super dealloc];
}
@end
III) Utilisation
MyScroll *myScrollView;
CGpoint monPoint; monPoint.x=450;monPoint.y=750;
[myScrollView setContentOffset:monPoint];
Et la vue sera chargée sur les coordonnées du point monPoint
Catégorie(s): Développement, Iphone, Tutorial | Comments (0)