Main Contents

[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)

Leave a comment