1

我对 Swift、面向对象编程和接口构建非常陌生(我只有一些 MATLAB 编程经验),并且我已经苦苦挣扎了大约一个星期来想出一个在 IB 中工作的接口。我已经尝试了很多视图控制器的排列,容器视图有和没有连接到 segue 的 UIButton 以及有和没有导航控制器,我现在不知道要尝试什么(我的 Stack Overflow 页面看着最终创造了更多我想做的错误)。

最终,我希望用户能够使用 UIButton 在视图控制器的容器视图内的六个 UIViewController 之间导航(有点像视图之间的手动操作幻灯片)。我尝试过 UITabBarController 和 UINavigationController,但我不想要选项卡或导航栏。

我提前为没有提供任何代码而道歉,但我确实在一个月前学习了 Swift,并且在我进行过程中正在学习。不过,我已经在 IB 中上传了我的一项尝试(显示了六个 UIViewController 中的两个,因为由于错误,我还没有将它们全部放入)。在附加的图像中,第二个视图放置在第一个视图之上,而不仅仅是在容器视图中。 图片在 URL 上,因为我无法将它附加到这篇文章感谢您提供的任何帮助。

4

1 回答 1

1

我将如何做到这一点非常简单。根据需要创建一个包含许多单元格的集合视图。比方说 5。每个单元格都有自己的 UIView 和嵌入式 ViewController。您为每个视图执行 5 次。那应该是困难的部分。

接下来是创建按钮,我猜你有 2 个按钮,一个后退 < 和一个前进 >。然后按下按钮的简单逻辑,在集合视图中,您只需使用以下内容递增到下一页:

   [self.collectionView scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionCenteredVertically animated:NO];

这应该够了吧。

有关如何更改单元格大小的示例

func collectionView(_ collectionView: UICollectionView,
            layout collectionViewLayout: UICollectionViewLayout,
            sizeForItemAt indexPath: IndexPath) -> CGSize {
    // your code here
}

对于每个单元格的不同视图,您创建一个 cellId1、cellId2、cellId3 等。并为每个单元格 id 注册一个新单元格。

collectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "Cell")

这将是如何为视图设置不同的单元格

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) return cell }

这应该足以让你继续前进。

于 2017-07-31T18:24:13.427 回答