【问题标题】:How do I create a new View (or subView) with the tap of a button in swift?如何在 swift 中轻按按钮创建新视图(或子视图)?
【发布时间】:2017-01-15 01:56:26
【问题描述】:

我目前正在制作一个抽认卡应用程序,并且我正在尝试制作一个按钮来创建一个全新的视图(或子视图)供用户编辑。我应该使用容器视图吗?收藏视图?我还希望将这些设置为仅一个视图控制器,这样我就可以将“卡片”保存在一个“集合”中。请帮忙!!

编辑:如何将这些视图保存在“文件夹”中,以便用户稍后查看。有没有一种有效的方法来做到这一点,这样应用程序就不会变慢或停止。

编辑#2:好的,所以我有点明白了......集合视图。但是由于我使用的是 tvOS,我将如何将其实现到我的应用程序中。有什么想法吗?

【问题讨论】:

  • Collection View 可能是最简单的——您可以将每个单元格设置为屏幕大小。

标签: ios swift uiview uiviewcontroller addsubview


【解决方案1】:

如果你想以编程方式创建一个新的UIView,其实很简单。您可以创建这样的方法:

func addNewView(to container: UIView) {

    let newView = UIView()
    container.addSubview(newView)
    newView.backgroundColor = UIColor.blue
    newView.frame = CGRect(x: 10, y: 50, width: 200, height: 250)

}

这将在您传入的任何容器视图中创建一个新视图,其背景为蓝色,距左侧 10 点(x 轴),距顶部 50 点(y 轴,认为一个正常的笛卡尔坐标系与 y-轴倒置),宽200,高250。

然后您可以在按下按钮时调用此方法,方法是使用它自己的方法处理按钮点击,如下所示:

func buttonTapped(_ sender: UIButton) {

    addNewView(to: self.view)

}

显然,我为您提供的框架的所有值都只是一个示例,因此您可以在脑海中将其可视化,您可以根据需要进行编辑,或者根据设备屏幕的大小进行计算。你可以通过说self.view.bounds来获取设备的屏幕尺寸

【讨论】:

  • 请记住,在彼此叠加 5 个左右的视图之后,性能将成为一个问题。
  • @brandonscript - 好点。如果您的应用程序的工作方式允许您在完成后从屏幕上移除卡片,那么您可以通过这样做来提高性能。要从其父视图中删除子视图,您只需说 nameOfSubview.removeFromSuperview()
  • 或者使用集合视图?
  • @brandonscript - 这肯定会更有效率。我只是不知道这是否适用于他的设置。当我想到闪存卡应用程序时,我认为一次只有一个视图。但是当您说可以使一个单元格与屏幕大小相同时,您在上面提出了一个很好的观点。这可能是最好的
  • 好的,所以我有点明白...收藏视图。但是由于我使用的是 tvOS,我将如何将其实现到我的应用程序中。有什么想法吗?
猜你喜欢
  • 1970-01-01
  • 2014-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-23
相关资源
最近更新 更多