2

レストラン用のアプリを作成し、フードメニューをスクロール可能な画像として表示しようとしています。イメージは構成ファイルから取得されます。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // back button
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button setImage:[UIImage imageNamed:@"btn-back.png"] forState:UIControlStateNormal];
    button.frame = CGRectMake(0.0f, 0.0f, 46.0f, 28.0f);
    [button addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithCustomView:button];
    self.navigationItem.leftBarButtonItem = customBarItem;
    [customBarItem release];


    [self setTitle:[menu objectForKey:@"title"]];
    [scrollView2 setScrollEnabled:YES];

    NSString *imageName = [menu objectForKey:@"imageName"];
    if (![imageName isEqualToString:@""]) {
        UIImage *image = [UIImage imageNamed:imageName];

        [imageView setImage:image];
        [scrollView2 addSubview:imageView];
        [imageView release];
    }
    [textView setText:[menu objectForKey:@"description"]];
}

現在、画像はスクロールしませんが、静止画像として表示されます。ユーザーが画像を垂直方向にスクロールできるように、このコードを変更してください。どうもありがとう。

4

2 に答える 2

2

を使用して、contentViewUIScrollViewの as サブビューを追加する必要があります。UIImageViewそして、スクロールビューのコンテンツサイズをイメージビューのサイズとして設定します。

[imageView setImage:image];
[scrollView2.contentView addSubview:imageView];
[scrollView2  setContentSize:image.frame.size];
[imageView release];

現時点でテストする Mac はありませんが、動作するはずです。

于 2012-09-15T10:25:04.200 に答える
0

Seegaが書いたことにほぼ同意します。imageView は scrollView のサブビューである必要があります。次に、scrollView の contentSize と minimum&maximumZoomScale と imageView のフレームを設定することを忘れないでください。

self.scrollView.contentSize = self.imageView.image.size;
self.imageView.frame = CGRectMake(0, 0, self.imageView.image.size.width, self.imageView.image.size.height);

self.scrollView.minimumZoomScale = // some number between 0 and 1, default is 1, so no zoom
self.scrollView.maximumZoomScale = // some number larger than 1, default is 1, so no zoom
self.scrollView.zoomScale = 1 // starting zoom scale

このコードを配置するのに適した場所は

-(void)viewWillLayoutSubviews{}

したがって、ビューが表示されるたびに、またデバイスが回転するたびに実行されます。

于 2012-09-15T15:20:04.880 に答える