如何在 iPad 中处理不同的滚动视图以改变方向?

Posted

技术标签:

【中文标题】如何在 iPad 中处理不同的滚动视图以改变方向?【英文标题】:How to handle different scrollView for orientation change in iPad? 【发布时间】:2011-08-17 07:51:24 【问题描述】:

我有一个滚动视图,其中包含两个不同方向的 2 个不同子视图。 在纵向模式下,它显示一个表格视图,在纵向模式下,它显示 UIImageView。 我想知道处理方向的理想方法。 我目前的处理方式有问题 1.加载视图,并将滚动视图作为子视图添加到根视图。 2.改变方向, 3.更改滚动视图的框架和内容。 4.再次将修改后的scrollview添加为子视图。

但是,每次我改变方向时,新视图都会添加到前一个视图之上。

【问题讨论】:

【参考方案1】:

如果您想为不同的方向提供两个不同的视图,则需要在方向更改时切换它们。

当你从纵向转到横向时,你必须删除 UIImageView 并添加滚动视图(反之亦然)

[myImageView removeFromSuperview];
[self.view addSubview:scrollView];

您还可以检查视图是否没有超级视图以确保您必须添加它:

if(scrollView.superview == nil)
    [self.view addSubview:scrollView];

【讨论】:

它对我不起作用。我正在使用导航控制器,并且这两个子视图都添加到此导航控制器的根视图中。【参考方案2】:

由于您已经将 scrollView 添加为 subView,因此您无需再次将其添加为 subView。 只需更改scrollView的frame和contentSize即可。

对于视图的作用

[scrollView.subView removeFromSuperView]
[scrollView addSubView:view1];  // or add view2

【讨论】:

以上是关于如何在 iPad 中处理不同的滚动视图以改变方向?的主要内容,如果未能解决你的问题,请参考以下文章

iPad - 带有 UITextField 的 UITableView - 方向改变时自动调整大小问题

UIScrollView + 改变方向 = 混乱的子视图(iPad)

如何以编程方式在滚动视图中嵌入堆栈视图

在 xib 文件视图之外设置视图以适应滚动视图 + 不同的 xib 用于方向 - iOs

iOS CATiledLayer 崩溃

iPad:如何根据方向(横向/纵向)显示不同的屏幕