2016-11-15 7 views
0

Я пытаюсь реализовать эффект скретч-карты в Swift 3 для моего приложения, я нашел несколько примеров, но они на Objective C (show scratch-card effect with the help of using scratch and win example)Царапины эффект карты в Swift 3

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

Любой знает, как это сделать в Swift 3? Любая помощь с благодарностью оценили

ответ

1

Вы можете использовать библиотеку ScratchCard. У этого есть простой API, но я не знаю, является ли это Swift 3 совместимым. В любом случае, вы можете переписать его или проверить его реализацию.

+0

Спасибо, сэр! Я пытаюсь это сделать сейчас – Apneist

+0

Итак, я запустил его, XCODE переводит его в Swift 3, но тогда он не будет работать, когда я нажму кнопку «play» (он говорит: «Сборка выполнена без ошибок, но ничего не происходит/нет симулятора открывается) , он также пропускает активы (изображение до/после) и не имеет файла раскадровки. Я новичок в программировании, любые намеки на основные шаги, которые я должен предпринять, чтобы переписать его с нуля, какие инструменты для раскадровки использовать и какие классы/функции? Еще раз спасибо – Apneist

+1

На самом деле, в этой библиотеке нет проекта-примера. Вы можете создать новый проект с шаблоном приложения Single View и вручную добавить в свой проект 'ScratchUIView.swift' и' ScratchView.swift', а затем добавить просмотр: –

0

Проверить этот Swift 3 пример ScratchCardImageView

Простой UIImageView подкласс, который позволяет вашим UIImageView стать скретч-карты.

enter image description here

+0

Спасибо v много - я проверю это – Apneist

-1

я нашел библиотеку, которая соответствует вашим требованиям. Совместимость с Swift 3. Попробуйте SRScratchView

ScreenShot

var lineType: CGLineCap = .round 
var lineWidth: CGFloat = 30.0 

func scrachBetween(fromPoint: CGPoint, currentPoint: CGPoint) { 

     UIGraphicsBeginImageContext(self.frame.size) 

     image?.draw(in: self.bounds) 

     let path = CGMutablePath() 
     path.move(to: fromPoint) 
     path.addLine(to: currentPoint) 

     let context = UIGraphicsGetCurrentContext()! 
     context.setShouldAntialias(true) 
     context.setLineCap(lineType) 
     context.setLineWidth(lineWidth) 
     context.setBlendMode(.clear) 
     context.addPath(path) 

     context.strokePath() 

     image = UIGraphicsGetImageFromCurrentImageContext() 


     UIGraphicsEndImageContext() 
    } 
+0

Хотя эта ссылка может ответить на вопрос, лучше включить основные части ответа здесь и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. - [Из обзора] (/ review/low-quality-posts/18430857) – Aryan

+0

Это не дает ответа на вопрос. Когда у вас будет достаточно [репутации] (https://stackoverflow.com/help/whats-reputation), вы сможете [прокомментировать любое сообщение] (https://stackoverflow.com/help/privileges/comment); вместо этого [предоставить ответы, которые не требуют разъяснений у аськи) (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- я-делать-вместо этого). - [Из обзора] (/ review/low-quality-posts/18430857) –

 Смежные вопросы

  • Нет связанных вопросов^_^