2015-10-04 55 views
0

背景:假设你在“覆盖FUNC的drawRect(RECT:的CGRect)”的自定义UIView类的方法(称为视图1),然后如何在IOS Swift中以相同的代码部分以编程方式创建和绘制子视图?

问:什么是代码,这一切的drawRect内方法从视图1(即在同一个文件中的同一个方法中,所以不需要创建另一个类),创建一个子视图(称之为视图2)并将其绘制到该视图中。所以我们可以说以编程方式:

  • 创建一个子视图(查看2)
  • 绘制此子视图(比如一个UIBezierPath)
  • 添加方法,这个子视图,例如触摸(例如touchesMoved:withEvent :)
  • 添加此子视图(查看2)到视图1

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

编辑/更多背景: 我遇到了CoronaSDK并试图了解IOS/Swift方法。在电晕例如,你可以,同样的方法中,这样做: - 画一个脸圆 - 插入眼睛作为单独的图像 - 插入鼻子说行路径 - 对于这些新增听众具体的方法(例如,如果触摸左眼然后做X等)

所以这一切在一个文件内(甚至相同的方法)。所以我现在试图围绕IOS来包装我的头,在这种情况下,您将不得不为每个文件定义自定义UIView类。看起来他们必须是UIViews(因为图层不接受触摸),并且为触摸事件设置自己的回调(?)

+0

几乎不可能绘制到该视图或添加方法。即使有可能,它也没有意义。在'drawRect'方法中添加子视图会导致添加多个子视图,除非您添加一些解决方法。你有什么要求?你为什么会这么想呢? – Adam

+0

我遇到了Corona,可以在同一个方法中添加对象作为子视图(以及“插入组”),并将侦听器附加到它们上。试图在这里了解IOS/Swift – Greg

回答

1

对于商业应用程序,您可以看看UIView和其他子视图等。游戏,我想你应该考虑SpritKit,只要搜索“雨燕SpritKit”,你应该得到很多信息,比如一个很好的教程在这里:

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

你会看到你正在寻找的相似之处之间CoronaSDK &斯威夫特。

我也转向从科罗娜斯威夫特。我真的很后悔,两年前我并没有直接选择本地开发。