Я пытаюсь сделать экран с видом, в котором пользователь может что-то нарисовать. Я создал настраиваемое представление с таким кодом:странная ошибка с рисунком в UISplitViewController
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
swiped = false
if let touch = touches.first {
lastPoint = touch.location(in: imageView)
}
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
swiped = true
if let touch = touches.first {
let currentPoint = touch.location(in: imageView)
drawLine(fromPoint: lastPoint, toPoint: currentPoint)
lastPoint = currentPoint
}
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
if !swiped {
// draw a single point
drawLine(fromPoint: lastPoint, toPoint: lastPoint)
}
и функции рисования
func drawLine(fromPoint: CGPoint, toPoint: CGPoint) {
UIGraphicsBeginImageContext(imageView.frame.size)
let context = UIGraphicsGetCurrentContext()
imageView.image?.draw(in: CGRect(x: 0, y: 0, width: imageView.frame.size.width, height: imageView.frame.size.height))
context?.move(to: fromPoint)
context?.addLine(to: toPoint)
context?.setLineCap(.round)
context?.setLineWidth(lineWidth)
context?.setStrokeColor(lineColor.cgColor)
context?.strokePath()
imageView.image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
}
, когда я показываю, что вид на вид контроллера все нормально:
, но когда я показываю он подробно отображается в UISplitViewController, в то время как пользователь продолжает рисовать, часть уже нарисованного изображения перемещается и исчезает:
Я не могу найти ничего о том, что ошибка в сети и не имеют ни малейшего представления о том, что такое поведение производится
ли кто-нибудь есть какие-либо идеи по этому поводу?
Вот пример проекта, где вы можете воспроизвести эту ошибку: https://github.com/fizzy871/DrawingBug
Кстати, в реальном проекте не только мастер вид расщепленного контроллера представления, но панель навигации влияет на рисунок слишком
Это просто случилось в мое приложение, сумасшедшие вещи. Теперь я округлил размер рамки, и он отлично работает. Это, должно быть, трудно было понять, спасибо за решение! –