首页 文章

如何在IOS Swift的相同代码部分中以编程方式创建和绘制子视图?

提问于
浏览
0

背景:假设您处于自定义UIView类的“override func drawRect(rect:CGRect)”方法(称之为View 1),然后

问题:代码是什么,所有这些都来自视图1的drawRect方法(即在同一文件中的相同方法中,因此不创建另一个类),创建子视图(称之为视图2)并绘制到此中 . 所以让我们以编程方式说:

  • 创建子视图(视图2)

  • 绘制到此子视图(例如UIBezierPath)

  • 为此子视图添加方法,例如触摸(例如touchesMoved:withEvent :)

  • 将此子视图(视图2)添加到视图1中

这可能吗?或者IOS / Swift中的这种绘图真的需要你为此创建一个新类(例如UIView的自定义子类)吗?

编辑/更多背景:我从CoronaSDK遇到并尝试了解IOS / Swift方法 . 例如,在日冕中,您可以使用相同的方法执行以下操作: - 将面部绘制为圆形 - 将眼睛插入单独的图像 - 插入鼻子作为线路径 - 为每个添加侦听器使用特定方法(例如如果触摸左眼然后做X等)

所以这一切都在一个文件中(甚至相同的方法) . 所以我现在试图绕过IOS,看起来在这种情况下,您必须有单独的文件为每个文件定义自定义UIView类 . 看来他们必须是UIViews(因为图层不接受触摸),还要为触摸事件设置自己的回调(?)

1 回答

  • 1

    对于商业应用程序,你看看UIView和其他子视图等 . 对于游戏,我认为你应该研究SpritKit,只搜索“Swift SpritKit”,你应该得到很多信息,比如这里有一个很好的教程:

    http://www.raywenderlich.com/119815/sprite-kit-swift-2-tutorial-for-beginners

    您将看到CoronaSDK和Swift之间的相似之处 .

    我也从Corona转向Swift . 我很遗憾两年前我没有直接选择原生开发 .

相关问题