Я хочу создать приложение, в котором пользователь помещает один палец на экран и на экране рисуется круг. Центр круга расположен там, где пользователь коснулся экрана. Пользователь перемещает свой палец, чтобы увеличить радиус круга. Пока пользователь перемещает палец, круг рисуется с краем круга под пальцем пользователя.
Прямо сейчас мой код создает круги произвольного радиуса с центром в месте, где пользователь коснулсяэкран. Мне нужна помощь в выяснении того, как сделать радиус круга зависимым от траектории пальца пользователя.
Итак, у меня есть класс CircleView: UIView, который является классом касания какао. В нем есть следующие функции:
override init(frame: CGRect) {
super.init(frame: frame)
self.backgroundColor = UIColor.clear
}
override func draw(_ rect: CGRect) {
// Get the Graphics Context
if let context = UIGraphicsGetCurrentContext() {
// Set the circle outerline-width
context.setLineWidth(5.0);
// Set the circle outerline-colour
UIColor.green.set()
// Create Circle
let center = CGPoint(x: frame.size.width/2, y: frame.size.height/2)
let radius = (frame.size.width - 10)/2
context.addArc(center: center, radius: radius, startAngle: 0.0, endAngle: .pi * 2.0, clockwise: true)
// Draw
context.strokePath()
}
Мой класс ViewController: UIViewController прямо сейчас имеет следующие функции:
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.lightGray
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches {
// Set the Center of the Circle
// 1
let circleCenter = touch.location(in: view)
// Set a random Circle Radius
// 2
let circleWidth = CGFloat(25 + (arc4random() % 50))
let circleHeight = circleWidth
// Create a new CircleView
// 3
let circleView = CircleView(frame: CGRect(x: circleCenter.x, y: circleCenter.y, width: circleWidth, height: circleHeight))
view.addSubview(circleView)
}
}
Я хотел бы создать круги не случайного радиуса, арадиуса, который пользователь может установить, перетаскивая его пальцем. В будущем я также хотел бы реализовать режимы удаления и перемещения для моего приложения. Режим перемещения позволит пользователю перетаскивать круги по экрану.