2

在我实施更大的项目之前,这只是一个测试项目:-)

根据图像,我在 1 个 ViewController 中创建了 2 个自定义视图。我需要它们重叠或至少移开并再次在应用程序内返回。

我曾尝试查找自定义视图,但我很幸运。

我希望使用此代码或类似的东西:

-(IBAction)move02Action
{
   [UIView beginAnimations:nil context:NULL];
   [UIView setAnimationDuration:0.5];
       _left.view.frame = CGRectMake(80, 70, 160, 380);  //_left is Left UIViewContorller
       _right.view.frame = CGRectMake(240, 70, 160, 380); //_right is Right UIViewContorller
   [UIView commitAnimations];
}

我意识到这是针对 UIViews 而不是 View Controllers。关于在哪里看的任何想法?

故事板

感谢您的洞察力:-)

4

1 回答 1

1

您可以像这样使用包含视图控制器

 UIView *view = [[UIView alloc] initWithFrame:CGRectMake((80, 70, 160, 380))];
 [view setBackgroundColor:[UIColor whiteColor]];
[self.view addSubview:view];

LeftViewController *left = [[LeftViewController alloc] init];

left.view.frame = view.bounds; 
[left  setDelegate:self];
[view addSubview:left .view];

[left  didMoveToParentViewController:self];
[self addChildViewController:left ];

查看“实现容器视图控制器”文档。

编辑

1)向self.view添加一个ScrollView,并在滚动视图中添加两个不同帧的视图使用上面建议的代码添加视图。

2)像这样在必要时为滚动视图设置内容

 CGPoint bottomOffset = CGPointMake(scrolposition, scrollView.contentSize.height - scrollnView.bounds.size.height);
    [scrollView setContentOffset:bottomOffset animated:NO];

如果您想要重叠视图的效果,请使用 [[self view] bringSubviewToFront:[self LeftView]];[[self view] sendSubviewToBack:LeftView];

于 2012-11-21T05:15:37.770 回答