#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:
Я предполагаю, что вы используете распознаватель жестов панорамирования, а не распознаватель жестов салфетки?
Вам нужно написать код, который принимает точки, полученные от распознавателя жестов, и обрабатывает их как конечные точки отрезка линии. Затем вы равномерно нанесете свой смайлик на пространство между точками с регулярным интервалом.
Если вам нужна более подробная помощь, чем эта, вам нужно будет опубликовать свой текущий код чертежа.