我正在构建自定义控件。基本上我想让应用程序生成矩形(位于x = 0
,变量y
值随着每个矩形的增加而增加。)
我希望他们回应手势,他们有两个位置(关闭 - 大部分隐藏,打开 - 完全展开,以便整个矩形仍然可见,但拴在一边)。
我已经设计了一个考虑到这一点的应用程序。看到用户会生成矩形,我认为核心图形最适合这项工作。此外,我希望矩形根据与手势相关的位置显示不同的信息。
是否可以将核心图形与这些类型的控件结合起来?我知道这要求很多。
我只是在确定如何在代码中组合每个组件时遇到问题。
任何建议都将不胜感激。谢谢!
答案 0 :(得分:1)
显然,我们不是来为您编写代码,而是一些想法:
你说你认为Core Graphics最适合这份工作。你绝对可以,但你也可以使用CAShapeLayer
。
因此,您可以创建一个手势识别器,其处理程序为:
当手势状态为CAShapeLayer
时创建UIGestureStateBegan
,并将其添加为视图layer
的子图层。
使用path
的{{1}}替换该形状图层的CGPath
属性,该UIBezierPath
是根据手势识别器处理程序捕获的更新位置创建的手势的状态为UIGestureStateChanged
。
我建议你解决这个问题(google搜索" CAShapeLayer教程"或者#34; UIPanGestureRecognizer示例"或者如果有任何这些概念不熟悉,你有什么用)。
如果您真的想使用Core Graphics,那么您将拥有一个自定义UIView
子类,其drawRect
绘制所有矩形。从概念上讲,它与上面的内容非常相似,但您还必须编写自己的矩形绘图代码,而不是让drawRect
为您执行此操作。