我在iOS App Storyboard中创建了一个Container View.我想在UICollectionView的一个单元格中水平翻页(就像Android的FragmentPager一样).但是,如果您在UICollectionViewCell中放入容器视图,则会发生错误:
故事板:错误:非法配置:容器视图不能放在运行时重复的元素中
ios fragmentpageradapter container-view uicollectionview uicollectionviewcell
如果您想尝试源代码(非常欢迎这样做),请查看我的Bitbucket存储库。
我有一个弹出对话框,显示设置列表。这些设置在多个UITableViews中列出。UITableViews不可滚动,因为整体设置视图已经可以滚动了。此外,弹出对话框在垂直方向上应占据所需的屏幕数量,但应水平压缩。
因此,我构思了以下结构:
UIView => MySettingsViewController
- UIScrollView
- UIView (Content View)
- Container View1
- UITableView (embedded) => MyTableViewController
- Container View2
- UITableView (embedded)
Run Code Online (Sandbox Code Playgroud)
通过Interface Builder组装结构,并使用Autolayout进行尺寸调整。
我同时拥有“滚动视图”,“内容视图”(我只是从一个开始)和“容器视图”到各自的超级视图(或布局指南)。我通过以下方式限制了内容视图的大小:
contentView.width == (topmost) UIView.width
contentView.height == 200 // removed at build time
Run Code Online (Sandbox Code Playgroud)
另外,我将表视图的大小设置为其内容大小,因为否则弹出窗口似乎为空:
UIView => MySettingsViewController
- UIScrollView
- UIView (Content View)
- Container View1
- UITableView (embedded) => MyTableViewController
- Container View2
- UITableView (embedded)
Run Code Online (Sandbox Code Playgroud)
设置弹出窗口充满了内容,但是其大小并不完全正确:
为了解决这个问题,我尝试了以下无效的方法:
contentView.width == (topmost) UIView.width
contentView.height == 200 // removed …Run Code Online (Sandbox Code Playgroud) uitableview uiscrollview uipopovercontroller container-view uicontainerview
我正在使用故事板和自动布局.我在UIScrollView中有一个Container View.容器视图允许我在故事板中布局长(320,1000)视图.我将UIScrollView的内容大小设置为(320,1000).
我将以下对ContainerView的约束固定到ScrollView:
宽度等于:320
高度等于:1,000
顶部空间:Superview
将中心X对齐:Superview
Xcode坚持要添加一个额外的约束.它增加了一个底部空间:Superview Equals:-432.它不会让我删除这个约束!我不确定这是否会影响下面的问题.
在我的iPhone 5和模拟器的4英寸屏幕上一切正常.
当我在模拟器和我的iPhone4S的3.5英寸屏幕上测试时出现问题.滚动内容大小限制为(320,568),丢失了我的ContainerView的底部部分.
有人可以帮助我理解为什么这不适用于3.5英寸屏幕?
如果这是重复,请原谅我.我认为这肯定是个明显的问题.
我在故事板中有一个容器,它是ModelViewController类(整个视图控制器).从ModelViewController我需要获取容器的宽度和高度.我目前正在尝试:
self.view.bounds.size
Run Code Online (Sandbox Code Playgroud)
产生0.563380和0.000000.我也试过了
self.view.frame.size
Run Code Online (Sandbox Code Playgroud)
这产生了整个屏幕的尺寸.我在这里错过了什么?

我创建了一个UIViewController,并在其中插入一个容器视图,它嵌入了一个UITableViewController.如上所述的图像.
当用户单击表视图单元格时,我想在导航栏上添加UIBarButton.
但是,我该如何管理呢?我可以在单击Table View Cell时启动DatePicker,但是当我在表视图控制器实现文件中调用self.presentingViewController时,它返回(null),就像我调用self.parentViewController一样
我想实现自己的容器视图控制器.请假设这是我的ipad

一种通常的分割视图控制器,但我想扩展它:视图"a"的宽度应该可调整大小,当我点击视图'B'时 - 视图'C'进入可见区域

例如,在我的故事板中,我有3个容器视图:AViewController(用于A视图),BViewController,CViewController和一个组合视图控制器(初始视图控制器).在组合视图控制器中,我将实现从容器视图嵌入segue并通过以下代码初始化容器视图之间的关系:
@property ... *aViewController,*bViewController,*cViewController;
- (void)prepareForSegue:(UIStoryboardSegue *)segue
sender:(id)sender
{
if ([segue.identifier isEqualToString:@"EmbedAViewController"])
{
self.aViewController =
segue.destinationViewController;
}
if ([segue.identifier isEqualToString:@"EmbedBViewController"])
{
self.bViewController=segue.destinationViewController
}
-(void)viewDidLoad
{
[super viewDidLoad];
self.aViewController.bViewController=self.bViewController;
}
Run Code Online (Sandbox Code Playgroud)
问题1:使用故事板实现我的作业是否正确? 问题2:容器视图有哪些限制?它是addChildViewController API的直观替代品吗?如果不是,我应该在哪里实现父母与子女的关系?我应该在prepareForSegue方法中使用我的组合视图控制器
[self addChildViewController:aViewController];
[self.view addSubview:aViewController.view];
Run Code Online (Sandbox Code Playgroud)
问题3:如何在开始时将容器视图放在可见区域之外?
如果我在某处犯了错误或对基本概念有很大的误解,请不要打败我.我做了很多google-foo,我真的很感激任何帮助.非常感谢提前!
编辑:
我想在所有人之间建立关系."B"视图的内容取决于"A",而"C"视图的内容取决于"B".
objective-c storyboard ipad uistoryboardsegue container-view
(询问并自我回答,因为我在Google上没有发现任何点击,但最终通过反复试验找到了解决方案)
在iOS 5和6中,Apple添加了一些丑陋的黑客,使InterfaceBuilder支持"嵌入式"视图控制器.他们没有记录这些是如何工作的,他们只提供代码级示例,而且它们只涵盖了有限的一部分案例.
特别是,我希望有一个有时隐藏的嵌入式视图控制器 - 但如果你尝试使用明显的方法它不起作用(你会得到一个白色矩形):
childViewController.view.hidden = TRUE;
Run Code Online (Sandbox Code Playgroud) 我有状态栏问题.我有一个UIViewController,它有一个容器UITabBarController内部嵌入的容器视图UIViewController.
使用View controller-based status bar appearance= YESin my 启用我的应用程序中的状态栏时Info.plist,它会正常运行,root UIViewController会按预期显示状态栏.
但是,它导致UITabBarController容器视图将我的视图内容向下推动20个像素,在我的标签栏视图顶部留下一个空隙,表示它认为状态栏应该在哪里.
但当然状态栏没有显示在那里,因为它显示在屏幕顶部的正常位置.所以它实际上只是在我的容器视图中添加了一个空白.
objective-c statusbar uitabbarcontroller container-view ios7
今天我尝试在Xcode中使用容器视图,当我在Library菜单底部的栏中搜索时,我找不到它.我也搜索了整个列表,但找不到它.
有谁知道可能会发生什么.我正在使用Xcode 6.4.
任何建议将不胜感激.
ios ×6
xcode ×3
objective-c ×2
storyboard ×2
uiscrollview ×2
autolayout ×1
ios7 ×1
ipad ×1
iphone ×1
statusbar ×1
uistoryboard ×1
uitableview ×1
xcode6 ×1