0

に を追加しUIViewていUIScrollViewます。水平スクロールビューになり、複数のビューを追加したいと考えています。表示されているコードは、単純にするために 1 つのスクロールビュー用です。スクロール ビューはストーリーボードにあり、追加するビューは .xib ファイルです。ビューが追加されますが、設定したサイズの 2 倍になります。したがって、640 x 244 です。スクロールビューは、ビューの下部 122 ピクセルを占めます。.xib は 320 x 122 です。.xib の上に大きなボタンがあるだけなので、追加したときに何が起こっているかがわかります。唯一の問題は、スクロールビューに追加した .xib が必要なサイズの 2 倍になることです。私は何を間違っていますか??

さらに情報が必要な場合はお知らせください。ありがとう!

    BADAchievements *temporaryView = (BADAchievements *)[[[NSBundle mainBundle] loadNibNamed:@"BADAchievements" owner:self options:nil] objectAtIndex:0];

    CGRect f = temporaryView.frame;
    f.size.width = 320;
    temporaryView.frame = f;

    CGSize s = self.achievementScrollView.contentSize;
    s.width = f.origin.x + f.size.width;
    [self.achievementScrollView setContentSize:s];

    [self.achievementScrollView addSubview:temporaryView];
4

3 に答える 3

1

上記のコードをどこに配置しましたか、つまり、View Controller のどのメソッドに配置しましたか?

temporaryView=> and/orの最終フレームはachievementScrollView、NIB で指定した寸法によって必ずしも定義されるとは限りません! フレーム/境界は後でサイズ変更できます (つまり、ビューの読み込みプロセスが終了し、すべてのサブビューがレイアウトされたとき)。

したがって、サブビューのプロパティが正しく設定されているかどうかを確認する必要がautoresizingMaskあります。autoresizesSubviews(つまり、自動サイズ変更)

自動サイズ変更などについては、iOSの View プログラミング ガイドを参照してください。

于 2013-02-06T08:28:29.413 に答える
0

少しいじっただけです。どうやらコードは問題ないようです。自動レイアウトを使用する必要があり、UIView の自動サイズ変更を変更して、水平方向または垂直方向に伸びないようにしました。返信ありがとうございます。

于 2013-02-06T07:03:21.613 に答える
0

次のような変更を加えてみてください。

BADAchievements *temporaryView = (BADAchievements *)[[[NSBundle mainBundle] loadNibNamed:@"BADAchievements" owner:self options:nil] objectAtIndex:0];
CGRect f = temporaryView.frame;
CGRect f = CGRectMake(f.origin.x, f.origin.y, 320, f.size.height);
temporaryView.frame = f;
于 2013-02-06T06:51:05.290 に答える