UIButton用于在容器视图中的六个UIViewControllers之间导航

时间:2017-07-31 18:13:15

标签: swift xcode uiviewcontroller uibutton container-view

我是Swift,面向对象编程和界面构建的新手(我只有一些MATLAB编程经验),而且我一直在努力争取在IB中提供一个工作界面一周。我已经尝试了很多视图控制器的容器视图的排列,有或没有连接到segue的UIButton,有和没有导航控制器,我不知道在这一点上尝试什么(Stack Overflow pages I've看着最后用我想做的东西创造了更多的错误。

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

我提前为没有提供任何代码道歉,但我在一个月前就学会了Swift,并且随着我的进展而学习。我已经上传了我在IB中的一次尝试(显示了六个UIViewControllers中的两个,因为我还没有把它们全部放入,因为这些错误)。在附加图像中,第二个视图放在第一个视图的顶部,而不是仅放在容器视图中。 the image is on the URL since I cannot attach it to this post感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分: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 }

这应该足以让你前进。