UIBezierPath содержит: метод не обнаруживает касание линии толщиной более 1 пикселя.IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Гость
 UIBezierPath содержит: метод не обнаруживает касание линии толщиной более 1 пикселя.

Сообщение Гость »

Я рисую путь шириной 10 пикселей, но когда я пытаюсь обнаружить в нем касания, UIBezierPath содержит: метод обнаруживает только касания, которые происходят на линии шириной 1 пиксель, а не на линии шириной 10 пикселей.

Код: Выделить всё

    let path = UIBezierPath()
path.move(to: start)
path.addLine(to: end)
path.usesEvenOddFillRule = true
path.lineWidth = 10
path.lineCapStyle = .round
path.stroke()
path.close()

let shapeLayer = CAShapeLayer()
shapeLayer.path = path.cgPath
shapeLayer.strokeColor = lineColor.cgColor
shapeLayer.lineWidth = path.lineWidth
Вот метод обнаружения прикосновения:

Код: Выделить всё

@objc func didTapOnView(_ recognizer: UIGestureRecognizer) {
let tapLocation:CGPoint = recognizer.location(in: self)
self.hitTest(tapLocation: CGPoint(x: tapLocation.x.rounded(), y: tapLocation.y.rounded()))
}

private func hitTest(tapLocation: CGPoint){

let path: UIBezierPath = path0

print("Touch location is: \(tapLocation)")

if path.contains(tapLocation){
print("inside")
} else{
print("outside")
}
}
Я получаю только прикосновения, которые происходят на линии размером ровно 1 пиксель, а не на линии 10 пикселей. Если я не округляю, касания вообще не обнаруживаются.

Источник: https://stackoverflow.com/questions/781 ... an-1-pixel
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • UIBezierPath содержит: метод не обнаруживает касание линии толщиной более 1 пикселя.
    Гость » » в форуме IOS
    0 Ответы
    22 Просмотры
    Последнее сообщение Гость
  • Экраны шириной 1024 пикселя и планшеты шириной 1024 пикселя конфликтуют.
    Anonymous » » в форуме CSS
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Экраны шириной 1024 пикселя и планшеты шириной 1024 пикселя конфликтуют.
    Anonymous » » в форуме Html
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Экраны шириной 1024 пикселя и планшеты шириной 1024 пикселя конфликтуют.
    Anonymous » » в форуме Jquery
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous
  • Полилиния отображается с разной толщиной в Firefox и Chrome, несмотря на одинаковую ширину обводки.
    Anonymous » » в форуме CSS
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»