我一直在寻找高和低,试图弄清楚这一点,希望有人能帮助(我想这大概是相当微不足道,但我只是在混乱的情况!)嵌入容器视图到UIScrollView的
我使用XCode 5和故事板。我有一个容器视图,占据了iPhone屏幕空间的75%左右。在这之上我有一些按钮(和其他小工具)。我希望能够在按下其中一个按钮时将视图控制器加载到容器中。
到目前为止,所有这些工作正常,但正在加载的视图控制器大小不同,并且将来可能会更改。我希望能够允许(任意大小的)子视图滚动。
我已经尝试在滚动视图中嵌入容器,但随后作为添加新子视图的过程的一部分,您必须设置框架大小,但我希望孩子弄清楚它应该有多大然后设置一切。
我不完全知道什么是最好的方式去了解这是(在故事板设置的限制,或以编程方式?)
任何意见将是巨大的!或者指向一个教程的链接将会非常有用,我唯一可以找到的就是将视图控制器添加到容器视图或将视图添加到滚动视图中,而这些视图在Xcode 5(iOS 7)中似乎没有像预期的那样工作,
谢谢!
CNC中
这是我用来展示任意大小的详细视图控制器的代码,其余的一切都在故事板设置(以防万一,这是在未来的有用的人!)这现在的作品:
- (void)presentDetailController:(UIViewController*)detailVC{
//0. Remove the current Detail View Controller shown
if(self.currentDetailViewController){
[self removeCurrentDetailViewController];
}
//1. Add the detail controller as child of the container
[self addChildViewController:detailVC];
//2. DO NOT Define the detail controller's view size
//detailVC.view.frame = [self frameForDetailController];
//3. Add the Detail controller's view to the Container's detail view and save a reference to the detail View Controller
[self.detailView addSubview:detailVC.view];
self.currentDetailViewController = detailVC;
// Pin the height to the container to make it scrollable?
[self.detailView addConstraint:[NSLayoutConstraint constraintWithItem:self.detailView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeHeight multiplier:1.0f constant:detailVC.view.bounds.size.height]];
//4. Complete the add flow calling the function didMoveToParentViewController
[detailVC didMoveToParentViewController:self];
}
谢谢你,我已经试过这种方法,但无法让它工作(滚动视图只是不滚动)。在加载新视图控制器视图时,如何设置容器和子视图的框架? – user2851943
你让自动布局为你做。我会尽量整理一个例子。 – Travis
一个例子会很棒!非常感谢! – user2851943