我正在开发一个应用程序,让用户可以将图形叠加在一起.
图形被实例化为UIImageView,并且在实际图形之外是透明的.我也使用平移手势让用户在屏幕上拖动它们.
因此,当你有一堆不同大小和形状的图形相互叠加时,你可能会产生一种幻觉,即你正在触摸一个子索引视图,但你实际上是在接触顶部视图,因为它的一些透明部分是徘徊在你的接触点上.
我想知道是否有人有关于我们如何才能完成的想法只能在imageview的固体部分听取平移手势.或者可以收紧用户体验的东西,这样他们所触摸的就是他们所选择的.谢谢
创建自己的子类UIImageView.在子类中,pointInside:withEvent:如果该点位于图像的透明部分,则覆盖该方法以返回NO.
当然,您需要确定一个点是否在透明部分中.:)
如果您碰巧有一个CGPath或UIBezierPath那个概述图像的不透明部分,您可以使用CGPathContainsPoint或轻松完成-[UIBezierPath containsPoint:].
如果没有方便的路径,则必须检查图像的像素数据.stackoverflow.com上已经有很多答案可以解释如何做到这一点.搜索get pixel CGImage或get pixel UIImage.
| 归档时间: |
|
| 查看次数: |
729 次 |
| 最近记录: |