【问题标题】:How to draw multiple circles within circle like target and get touch event of particular circle?如何像目标一样在圆圈内绘制多个圆圈并获取特定圆圈的触摸事件?
【发布时间】:2016-01-15 07:31:14
【问题描述】:

我想画这样的目标视图-

并获取特定圆圈的触摸事件。 例如,如果用户在圆圈 7 之间触摸,则将圆圈的黑色填充到圆圈 7。

目前我有两种方法来实现这个功能: 1) 取10个UIImageView并相互叠加,触摸一个image view会根据条件改变image view的颜色。

2) 取 UIView 绘制 20 个颜色渐变(黑色边框线 10 个,空白区域 10 个)并保存每个渐变的帧。之后获取用户的触摸区域,然后根据它改变颜色。

我正在寻找更好的解决方案。

【问题讨论】:

    标签: ios objective-c iphone swift


    【解决方案1】:

    为什么不单张图片,根据接触点计算半径——你只需要知道中心位置。

    您真正需要的是一个从 0 到 11 的索引,而不是半径,如果它们的厚度相等,您可以在一次计算中做到这一点 - 取 (11 * radius / radiusFull) 的整数部分

    如果靶心尺寸不同,您可能需要添加更多代码。

    无论哪种方式,您都应该能够使用一张图片来完成这一切 - 动态生成或简单地加载 - 以及一些简单的数学运算。

    【讨论】:

    • 感谢 Russell...:) 听起来不错,但我正在寻找更多答案,可能有人有更好的解决方案。
    猜你喜欢
    • 2011-10-03
    • 2012-11-12
    • 2018-12-15
    • 2015-10-20
    • 2019-07-19
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 2021-10-15
    相关资源
    最近更新 更多