2008年

[iPhone 開発メモ] UIScrollView でスクロールさせる このエントリーを含むはてなブックマーク

iPhone/iPod touch Add comments

大きな画像を表示してそれを自由にスクロールさせる方法
今回はあらかじめ imgname.jpg という画像ファイルを Resource に入れておいてそれを表示させてスクロールさせています。

ViewBased のアプリを新規で作成、名前を「Scroll」とする。

ScrollViewController.h

@interface ScrollViewController : UIViewController  {
    IBOutlet UIScrollView *scrollView;
    UIImageView *myImage;
}

@property (nonatomic, retain) UIScrollView *scrollView;
@property (nonatomic, retain) UIImageView *myImage;

@end


IB で UIScrollView を追加して、scrollView と接続する。

e38394e382afe38381e383a3-1

ScrollViewController.m

@implementation ScrollViewController

@synthesize scrollView;
@synthesize myImage;

- (void)viewDidLoad {
    [super viewDidLoad];

    UIImageView *img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"IMG_0594.jpg"]];
    [self setMyImage:img];

    scrollView.pagingEnabled = NO;
    scrollView.contentSize = CGSizeMake(img.frame.size.width, img.frame.size.height);
    scrollView.showsHorizontalScrollIndicator = NO;
    scrollView.showsVerticalScrollIndicator = NO;
    scrollView.scrollsToTop = YES;
    scrollView.delegate = self;

    [scrollView addSubview: img];
    [img release];
}

- (void)dealloc {
    [super dealloc];
    [myImage release];
    [scrollView release];
}

@end

UIScrollView のプロパティは以下の通り

pagingEnabled
ページ単位でスクロールさせるか(画像等は NO の方がいい)
contentSize
UIScrollView のサイズ
showsHorisontalScrollIndicator
水平方向にスクロールインジケータを表示するかどうか
showVerticalScrollIndicator
垂直方向にスクロールインジケータを表示するかどうか
scrollsToTop
画面の一番上の時計などが表示されている灰色のバーの部分をタップしたときに一番上に戻すかどうか

関連する投稿

9 Responses to “[iPhone 開発メモ] UIScrollView でスクロールさせる”

  1. HappyQuality » [WordPress]テーマを変更してみた Says:

    [...] テーマを「GlossyBlue」から「Aeros」に変更してみました。 そもそもGlossyBlueを使っていたのは、*1 尊敬するSun Limited Mt.さんが使っていて、とても素敵だなぁと思っていたところに、僕もWordPressを使うことになり、たまたまどこかの記事でGlossyBlueが紹介されていて、えっ!?こんなに簡単にあの素晴らしい感じのブログにできちゃうの!?という驚きと共に使い始めて今に至るという浅はかな理由からなんですが、そろそろ変えてもいいかなと。Sun Limited Mt.さんもiPhoneに夢中ですし。全然関係ないけど。 [...]

  2. iPhone フリック操作のメモ | tonbyブログ Says:

    [...] [iPhone 開発メモ] UIScrollView でスクロールさせる [...]

  3. okhi Says:

    初めまして。Objective-Cを勉強中の超初心者です。いつも勉強で参考にさせて頂いております。質問ですがUIScrollViewで大きな画像のスクロール表示は上記説明でうまく動きましたが、初期に表示される画像が画像サイズそのもので表示されています。初期に画面に合わせて表示させ、拡大縮小を行う様にするにはどのようにしたら良いのでしょうか?厚かましい質問で申し訳ございません。

  4. matsuura Says:

    okhi さん

    UIScrollView に zoomScale というプロパティがあります。この値が 1 だと実寸です。この値を UIScrollView の大きさと表示する UIImage の大きさから画面に収まる比率を出せばいいのではないかと思います。ちょっと試していないのでうまくいくかどうか不明ですが、zoomScale で大きさが変わるのは確かです。

  5. okhi Says:

    matsuura さん

    早速のご回答ありがとうございます。zoomScaleですね!難しそうですが、色々と調べて試してみます。ありがとうございました。

  6. Katokichisoft Says:

    ソースコードを拝見したところ、11行目と20行目で、imgを2回addSubviewしているのに気が付きました。

    実際には修正されていると思いますが、一応、ご報告です。
    これからも頑張ってください。

  7. matsuura Says:

    Katokichisoft さん
    本当ですね。2回 addSubview していますね。
    コード修正させて頂きます。
    ご指摘ありがとうございました。

  8. ないす! Says:

    とても参考になりました。どうもありがとう。

  9. samo Says:

    初めてお邪魔致します。ScrollView初めて表示できました。参考になりました。ありがとうございました。
    17行目 scrollView.delegate = self;で最初ビルドエラーが出てましたが、Xcode再起動で出なくなりました。
    iPhone OS Scroll Viewプログラミングガイドのサンプルは何度やってもダメでしたので助かりました。

Leave a Reply

Additional comments powered by BackType

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン