将视图的一半添加到主视图中

时间:2012-08-29 09:58:46

标签: objective-c uiview uiviewcontroller

我有UIView,我想在该视图上添加一个视图,但它只是原始视图的一半大小。

我试过了:

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

但是所有屏幕

尝试:

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

我看到有类似presentPopupViewController的方法,但它们适用于UIViewcontroller。 任何想法在屏幕的一半开始它?

3 个答案:

答案 0 :(得分:0)

消息presentModalViewController:animated:将以模态方式呈现视图,始终占据整个屏幕。它不会将视图添加到当前视图中。

为此,请使用UIView的消息addSubview:。您可以按照自己的方式调整子视图的大小。

答案 1 :(得分:0)

使用presentModalViewController:animated:无法调整大小。

要像presentModalViewController一样有效:动画:像这样使用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))];

答案 2 :(得分:0)

假设你有两个观点,一个是主视图第二个是子视图

在主视图上添加子视图

 [mainview addSubview:childview];

从主视图中删除子视图

 [childview removeFromSuperview];

但是如果你想要一些动画而不是为此添加一些额外的代码。