Как нарисовать смайлики на UIImageView с помощью жеста

#swift #uiimageview #uigesturerecognizer #drawingcontext

Вопрос:

Надеюсь, что все в безопасности в этой пандемической ситуации.

Я пытался разработать приложение, похожее на SnapChat, но с прошлой недели столкнулся с проблемой, из-за которой я не получаю никакой библиотеки с GitHub или какой-либо ссылки на код из StackOverflow. Я должен нарисовать различные линии смайликов, используя жест свайпа на UIImageView, для которого я использовал UIGraphicsGetCurrentContext() Проблема, с которой я сталкиваюсь, заключается в управлении равным пространством между смайликами. Я прилагаю скриншот моей работы, проделанной до сих пор. Любая помощь будет признательна. Заранее спасибо

  func drawLineFrom(_ fromPoint: CGPoint, toPoint: CGPoint) {
        
        // isDrawingEmoji is used as a boolean to manage simple line drawing or emoji drawing.

        if isDrawingEmoji == true {
            
            UIGraphicsBeginImageContext(topImageView.frame.size)
            let context = UIGraphicsGetCurrentContext()
            context?.setAlpha(1.0)
            topImageView.image?.draw(in: self.img.frame)

            
            if let emoji = selectedEmoji.cgImage {
                context?.draw(emoji , in: CGRect(x: toPoint.x , y: toPoint.y, width: 50, height: 50))


            }
            topImageView.clipsToBounds = true
            
           
            topImageView.image = UIGraphicsGetImageFromCurrentImageContext()
            topImageView.alpha = 1.0
            UIGraphicsEndImageContext()
                       
        }
 

введите описание изображения здесь

Ответ №1:

Я предполагаю, что вы используете распознаватель жестов панорамирования, а не распознаватель жестов салфетки?

Вам нужно написать код, который принимает точки, полученные от распознавателя жестов, и обрабатывает их как конечные точки отрезка линии. Затем вы равномерно нанесете свой смайлик на пространство между точками с регулярным интервалом.

Если вам нужна более подробная помощь, чем эта, вам нужно будет опубликовать свой текущий код чертежа.