ビューコントロールで満たされた非常に長いViewControllerがあります(私が配置しました)。すべてのラベル、テキスト フィールドなどを一度に表示するのに十分なスペースがないため、UIScrollView (または同様のもの) を使用して、ユーザーがページを下にスクロールして残りのコントロールを表示できるようにします。ただし、ViewController の上に UIScrollview をドラッグしてからドラッグしようとしましたが、画面をまったくドラッグできませんでした。この「スクロール」機能を有効にするにはどうすればよいですか。これは TableView ではなく、通常の ViewController です。
6 に答える
あなたの質問が、XCode内でスクロールすることを期待しているのか(できません)、コードを実行するたびに期待しているのかどうかはわかりません。
アプリの実行時にビューをスクロールするには、スクロール ビューのコンテンツがそのフレームよりも大きくなる必要があります。したがって、フレームが iPhone の全画面表示 (0,0,320,460) であると仮定すると、次のように記述します。
[self.scrollView setContentSize:CGSizeMake(400, 460)];
次に、スクロール ビューを水平方向にスクロールして、残りの 80 ピクセルを表示します。
通常の方法で作成uibutton
し、通常の方法でリンクします。( .hファイル内にアウトレットとアクションを作成するのは、私が現在行っていることです)、次に、実際に使用する場所をコンピューターに伝えます。
myButton.frame = CGRectMake(20, 800, 90, 30); //in viewDidLoad is where I put it
このスレッドをチェックしてください: UIButton の位置を動的に変更する方法
注:以外のビューのサブビュー
を作成した場合、これは機能しません。少なくとも私の場合、これはうまくいきませんでした。ボタンは表示されていましたが、クリックしても関連する がアクティブになりませんでした。myButton
scrollView
IBAction
これは機能します:
[scrollView addSubview:myButton];
必要ないように見えますが。
これを行うより良い方法は次のとおりです。
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self
action:@selector(aMethod:)
forControlEvents:UIControlEventTouchDown];
[button setTitle:@"Show View" forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[view addSubview:button];
ここでこのコードを見つけました:プログラムで基本的な UIButton を作成するにはどうすればよいですか? 、投稿者 mahboudz
これは本質的に私が上に置いたものと同じですが、すべてプログラムで行います。これには、たとえば for ループを使用して複数のそのようなボタンを作成できる (まだ試していません) というボーナスが付属しています。
一番下にスクロールビューを設定し、その上にすべてのビューコントローラーを貼り付ける必要があります。
最初に UIScrollView を現在のビューにドラッグします
次に、その中のすべてのビューのコピー貼り付けを開始し、元のビューを形成します
この回答を確認してください ネット上に良い UIScrollView チュートリアルはありますか?
Interface Builder / ストーリーボードを使用してコンテンツをレイアウトしていると思います。次の手順を実行します:
- あなたがしたように、IBでUIScrollViewをレイアウトします。Size Inspector で幅と高さを、たとえば 320 x 460 に設定します。
- scrollview を IBOutlet として .h ファイルに接続します。名前を scrollView にします。
scrollview の contentSize をそのフレームよりも大きく設定します。例えば
self.scrollView.contentSize = CGSizeMake(320.0f, 1000.0f);
IB の scrollView に UIView を追加します。UIView のサイズは、スクロールビューの contentSize と同じにする必要があります。
- UIView にコンテンツをレイアウトするときは、Size Inspector で UIView の Y を -400 (またはオフセットしたい任意の値) に設定すると、UIView により多くの要素をレイアウトできるようになります。