0

私はUIViewを持っています。そのビューにビューを追加したいのですが、元のビューのサイズの半分になります。

私は試した :

[appDelegate.viewController presentModalViewController:testViewController animated:NO];

しかし、それはすべての画面にあります。

試した:

self.window.frame= CGRectMake(50, 50, 30, 30);
self.frame= CGRectMake(50, 50, 30, 30)

のようなメソッドがあるのを見ましたがpresentPopupViewController、それらは UIViewcontroller で動作します。画面の半分で開始するアイデアはありますか?

4

3 に答える 3

0

メッセージpresentModalViewController:animated:は、常に画面全体を占めるモーダルな方法でビューを表示します。現在のビューにビューが追加されることはありません。

これを行うには、UIViewのメッセージを使用しますaddSubview:。サブビューのサイズは任意の方法で設定できます。

于 2012-08-29T10:04:13.993 に答える
0

presentModalViewController:animated: の使用はサイズ変更できません。

presentModalViewController:animated: のような効果を得るには、次のように CATransition を使用します。

 CATransition *animation = [CATransition animation];
[animation setDelegate:self];
[animation setType:kCATransitionMoveIn];
[animation setSubtype:kCATransitionFromBottom];
[animation setDuration:0.50];
[animation setTimingFunction:
 [CAMediaTimingFunction functionWithName:
  kCAMediaTimingFunctionEaseInEaseOut]];
[self.view.layer addAnimation:animation forKey:kCATransition];

次のように self.view にビューを追加します。

[self.view addSubView:testViewController.view];
[testViewController.view setFrame:CGRectMake((self.view.frame.size.width/4),(self.view.frame.size.height/4),(self.view.frame.size.width*3/4),(self.view.frame.size.height*3/4))];
于 2012-08-29T10:22:48.437 に答える
0

2 つのビューがあるとします。1 つはmainviewで、もう 1 つはchildviewです。

メインビューに子ビューを追加するには

 [mainview addSubview:childview];

メインビューから子ビューを削除するには

 [childview removeFromSuperview];

ただし、アニメーションが必要な場合は、そのためのコードを追加する必要があります。

于 2012-08-29T10:25:50.230 に答える