Swift中的高级自定义控件功能

时间:2015-02-17 17:08:53

标签: ios swift

我正在构建自定义控件。基本上我想让应用程序生成矩形(位于x = 0,变量y值随着每个矩形的增加而增加。)

我希望他们回应手势,他们有两个位置(关闭 - 大部分隐藏,打开 - 完全展开,以便整个矩形仍然可见,但拴在一边)。

我已经设计了一个考虑到这一点的应用程序。看到用户会生成矩形,我认为核心图形最适合这项工作。此外,我希望矩形根据与手势相关的位置显示不同的信息。

是否可以将核心图形与这些类型的控件结合起来?我知道这要求很多。

我只是在确定如何在代码中组合每个组件时遇到问题。

任何建议都将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

显然,我们不是来为您编写代码,而是一些想法:

你说你认为Core Graphics最适合这份工作。你绝对可以,但你也可以使用CAShapeLayer

因此,您可以创建一个手势识别器,其处理程序为:

  1. 当手势状态为CAShapeLayer时创建UIGestureStateBegan,并将其添加为视图layer的子图层。

  2. 使用path的{​​{1}}替换该形状图层的CGPath属性,该UIBezierPath是根据手势识别器处理程序捕获的更新位置创建的手势的状态为UIGestureStateChanged

  3. 我建议你解决这个问题(google搜索" CAShapeLayer教程"或者#34; UIPanGestureRecognizer示例"或者如果有任何这些概念不熟悉,你有什么用)。

    如果您真的想使用Core Graphics,那么您将拥有一个自定义UIView子类,其drawRect绘制所有矩形。从概念上讲,它与上面的内容非常相似,但您还必须编写自己的矩形绘图代码,而不是让drawRect为您执行此操作。