2

アプリケーションのストーリーボードのシーンの 1 つに ScrollView を含めました。今、私はiOSの多くのことに非常に慣れていませんが、最終的にスクロールバーをシーンに表示することができました. 問題は、スクロールバーは表示されますが、内容がスクロールされないことです。

AppRequestViewController.h と AppRequestViewController.m で ScrollView を設定します。

AppRequestViewController.h

@interface AppRequestViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;

AppRequestViewController.m

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.scrollView.contentSize=CGSizeMake(320,1000);

}

ここに私のビュー階層があります:

ここに画像の説明を入力

ストーリーボードのシーン:

ここに画像の説明を入力

シミュレーターのスクロールバーが表示されるが、うまく動かない:

ここに画像の説明を入力

誰かが私がどこで間違ったのか教えてもらえますか? ありがとう。

4

6 に答える 6

3

iOS で Storyboards の ScrollView を設定すると、少し混乱する場合があります。私の質問の ScrollView の設定は正しいですが、プログラムが予想とは異なる動作をするような間違いはほとんどありません。

まず、私が見つけた修正は、File Inspector で Set Autolayout のチェックを外すことでした。2 つ目は、View 階層の修正です。修正をテストするために、シーンのコンテンツをより単純なものに変更しました。つまり、View、ScrollView、ネストされた View、および 2 つのボタンを使用します。新しいビュー階層は次のとおりです。

ここに画像の説明を入力

ScrollView は、メイン ビューの後のビュー階層の最上位にあります。次に、他の View オブジェクトを保持する別の View を配置しました。そもそも私のプログラムが機能しなかった理由は、ScrollView が他のオブジェクトと同じレベルにあるため、コンテンツをスクロールできないためです。

AppRequestViewController.m の viewDidLoad メソッドにもセットアップを追加しました。

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.navigationController setNavigationBarHidden:YES];
    [self.scrollView setScrollEnabled:YES];
    self.scrollView.contentSize=CGSizeMake(320,800);

}

ScrollView の設定は非常に簡単ですが、混乱する可能性があります。このYouTube チュートリアルに基づいてプログラムを修正しました。お役に立てれば。

于 2013-11-13T15:21:54.000 に答える
0

viewDidAppearの代わりに使用しviewDidLoadます。それは間違いなくうまくいくでしょう。

(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    [self.scrollView setContentSize:CGSizeMake(...)];
}
于 2013-11-14T16:42:53.007 に答える
0

スクロール可能なコンテンツは、スクロールビューのサブビューである必要があります。最初にビューの階層を確認する必要があります。その後、以下のコードを使用して、ViewController のビュー サイズとコンテンツ サイズを比較できます。

- (void)viewWillLayoutSubviews
{
    NSLog(@"scrollview size : %@", NSStringFromCGSize(self.scrollView.frame.size));
    NSLog(@"content size : %@", NSStringFromCGSize(self.scrollView.contentSize));
}

コンテンツのサイズは、スクロールビューのフレーム サイズよりも大きくする必要があります。

于 2013-11-13T01:43:52.603 に答える
0

スクロール ビューが画面を超えているようです。スクロール ビューのautoResizesSubviewsプロパティを true およびautoresizingMaskasに設定しますかUIViewAutoresizingFlexibleWidth| UIViewAutoresizingFlexibleWidth。を使用する場合はauto layout、適切な制約の設定に進みます。

于 2013-11-13T00:43:11.127 に答える