【问题标题】:What iOS view to choose for laying out several buttons选择什么 iOS 视图来布局多个按钮
【发布时间】:2014-02-25 23:58:31
【问题描述】:

我是 iOS 开发新手,如果这是一个简单的问题,我很抱歉。

我在 iPad 应用程序中有一个滚动视图,在该滚动视图中我插入了几个 UIButton。此滚动视图以垂直方式显示我的按钮(背景为 UIImage),允许我在按钮数量不适合布局时滚动。

但是我的目标有点不同,我希望单击任何按钮,当单击任何按钮时,一组新的 UIButtons(其背景为 UIImages)应该会出现在单击的按钮之后,也在滚动视图。当我单击另一个按钮时,之前打开的一组按钮“关闭”,现在在单击的按钮下方打开一组新按钮。

我不是 100% 熟悉 iOS 应用程序中的所有构建块,有人能建议什么视图最适合此目的吗?

谢谢

【问题讨论】:

  • 你能发布你正在使用的代码吗?
  • 你好@Drewness,我没有太多代码要展示,我有一个简单的 UIScrollView,然后我以编程方式创建 UIButtons 并使用 addSubview 将它们添加到 scrollView

标签: ios objective-c ipad


【解决方案1】:

我几乎肯定会选择UICollectionView 在屏幕上安排一组按钮。当用户执行需要一组新按钮的操作时,您只需更新集合视图呈现的数据集并调用reloadData 方法即可。

为了阐明如何在特定情况下使用 UICollectionView,您应该有一个视图控制器类,该类引用 UICollectionView 以及您希望显示的按钮。这个类可以有一个包含按钮的 NSArray 或 NSMutableArray,例如

@property (readwrite, strong) NSMutableArray *buttons;

您最初使用将在集合视图中显示的UIButton 实例填充buttons 数组。当您实现UICollectionView 数据源方法以返回一个单元格作为索引路径时,您将从此数组中获取按钮。

然后,发生用户操作,您需要显示一组不同的按钮。所以你清空buttons 数组并将新的UIButton 实例放在这里。然后您调用,例如,[self.collectionView reloadData];,然后新单元格被创建并与您的新按钮相关联。

【讨论】:

  • 所以,我会创建一个 UICollectionView,第一个数据集只有我的主按钮,当我单击其中一个时,我会重新加载包含所有主按钮的数据集,以及属于我刚开的群对吗?这不会使 UICollectionView 移动或重置滚动吗?无论如何我会尝试的!谢谢
  • @circuit 我扩展了一个答案,为您的情况提供更详细的方法。这听起来像你想要的吗?
  • 您好,我试过了,效果很好,没问题...谢谢!
猜你喜欢
  • 2014-09-14
  • 1970-01-01
  • 1970-01-01
  • 2014-06-19
  • 2015-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-07
相关资源
最近更新 更多