Hello StackOverFlow社区,
我有一个标准的UIBezierPath如下:
let π:CGFloat = CGFloat(M_PI)
override func drawRect(rect: CGRect){
let center = CGPoint(x:bounds.width/2, y: bounds.height/2)
let radius: CGFloat = max(self.bounds.width, self.bounds.height) - 60
let arcWidth: CGFloat = 40
var startAngle: CGFloat = 0
var endAngle: CGFloat = (2 * π)
var path = UIBezierPath(arcCenter: center,
radius: radius/2 - arcWidth/2,
startAngle: startAngle,
endAngle: endAngle,
clockwise: true)
path.lineWidth = arcWidth
UIColor.redColor().setStroke()
path.stroke()
}
这会产生一个非常简单的弧。很简单,我希望能够在应用程序运行时选择/按下此弧(如按钮),并能够触发操作。有什么办法可以做到这一点吗?
谢谢!
答案 0 :(得分:2)
您可以为自定义视图创建Outlet
,并在该自定义视图中添加tapgesture
,如下所示:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var arcView: customView!
override func viewDidLoad() {
super.viewDidLoad()
var tapGesture = UITapGestureRecognizer(target: self, action: "SomeMethod")
self.arcView.addGestureRecognizer(tapGesture)
}
func SomeMethod(){
//change label text
}
}
现在,当您点击arcView
SomeMethod
时,Bezier Paths
会打电话。您可以使用该方法更改标签文字。
有关详细信息,请参阅THIS教程,了解如何检测data-time
上的触摸。