1

誰かがここで私を助けてくれませんか。これを行う方法を探して、2日間インターネットを精査してきました。十分に単純であるように思えますが、そうではありません。

他の多くの人と同じように、私はスタンフォード iOS 5 チュートリアルに従って、講義 8: コントローラーのライフサイクルとイメージ/スクロール/WebViews に進みました。この例では、彼がスプリングとストラットを使用していることはわかっていますが、iOS 6 でも同じように簡単に実行できるようにしたいと考えています。

したがって、iOS 5 では、UIScrollView の contentSize = を UIImageView のサイズに設定するだけです。ただし、iOS 6 では、contentSize を設定しないように指示されています。

そこで、新しいプロジェクトから始めて、UIImageView にドラッグし、UIScrollView に埋め込みます。自動レイアウトが有効になっていることを確認します。スクロール ビューとイメージ ビューの両方のビュー コントローラーにアウトレットを作成してから、制約を確認します。これは私が立ち往生するところです。

誰もが新しい制約がいかに優れているかということを考えると、これほど単純なものがそれほど単純ではないことが信じられません。私はすべての制約を経験しました。それらがすべて適切であることを確認しましたが、アプリを実行すると、スクロール ビューが画像をパンしません。

今、私が以下を実装すると:

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.scrollView removeConstraints:self.scrollView.constraints];
    [self.imageView removeConstraints:self.imageView.constraints];

    NSDictionary *viewsDictionary = [NSDictionary dictionaryWithObjectsAndKeys:self.scrollView, @"sv", self.imageView, @"iv", nil];
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[sv]|" options:0 metrics:nil views:viewsDictionary]];
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[sv]|" options:0 metrics:nil views:viewsDictionary]];
    [self.scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[iv]|" options:0 metrics:nil views:viewsDictionary]];
    [self.scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[iv]|" options:0 metrics:nil views:viewsDictionary]];
}

正常に動作しますが、設定した制約を見てください。複雑なわけではありません。では、IBでこれを簡単に実行できないのはなぜですか(少なくとも私が試したすべてのことからではありません)。

これが IB で実行できる場合、誰かがその方法を教えてくれませんか?!?!

4

0 に答える 0