如何在iPad上显示集合但在iPhone上显示列表?

4

我需要在iPhone上以线性垂直列表的形式显示数据,在iPad上以集合/网格的形式显示

在iPhone上,它应该像这样:

enter image description here

但是在iPad上,它应该像这样:

enter image description here

我已经通过表视图在iPhone上实现了它,但不知道如何在iPad上将其显示为网格视图。

这里是我的问题:

  1. 我是否需要为iPad创建单独的视图控制器?如果是,那么我该如何定义两个视图控制器,一个用于iPhone,另一个用于iPad?
  2. 最好的实现方式是什么?

请帮帮我,我正在尝试实现它,但找不到任何方法。

(注意) 图片来自Vimeo iTunes应用程序: https://itunes.apple.com/us/app/vimeo/id425194759?mt=8

2个回答

2
您不需要为 IPADIPHONE 分别创建两个控制器。只需创建一个带有 UICollectionView 的控制器,然后使用 UICollectionViewFlowLayout 为您的 UICollectionView 设置布局,根据设备的类型来设置 UICollectionView 的布局是 IPAD 还是 IPHONE。如果您有任何疑问,请尝试此解决方案并告诉我们。
UICollectionViewFlowLayout *collectionViewFlowLayout = [[UICollectionViewFlowLayout alloc] init];
[collectionViewFlowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
self.myCollectionView.collectionViewLayout = collectionViewFlowLayout;

您还可以使用UICollectionViewFlowLayout的多个属性。

请检查此解决方案,并告诉我它是否适用于您。

请参考以下链接:

  1. https://www.raywenderlich.com/136159/uicollectionview-tutorial-getting-started

  2. https://www.raywenderlich.com/107439/uicollectionview-custom-layout-tutorial-pinterest


如何使用UICollectionViewFlowLayout在iPad上将列表设置为网格,而在iPhone上设置为线性垂直列表?您能否为我提供任何示例或教程的链接? - Fahad Rehman

1
这可以通过Storyboard中的自适应布局和尺寸类来实现。您根本不需要编写任何代码,并且也适用于多任务/分屏和未知尺寸的未来iOS设备。您可以使任何视图根据宽度是紧凑型(例如iPhone)还是常规型(例如iPad)而出现或消失。在视图检查器中,您可以添加紧凑型宽度的变化,如下所示: 将紧凑型宽度变化添加到视图 单击添加变体并取消选中“已安装”。现在,仅当设备具有紧凑型宽度时,该视图才会被安装。您可以使用带有嵌入式segue到UITableViewController的容器视图来执行此操作。
如果您将Storyboard视为iPad(通过单击底部标有“视图”字样的小图标),则该视图将消失。替换为另一个容器视图,该容器视图连接到UICollectionViewController,然后再次执行相同的操作,但这次要添加常规宽度的变化。
就是这样。
(抱歉,我没有足够的积分来显示图片)

这里有一个演示项目,可以创建类似您想要的布局和行为。所有操作都在故事板中完成,视图控制器只是框架。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接