2015-08-31 5 views
1

Я использую пользовательский класс YPDrawSignatureView в Github (https://github.com/yuppielabel/YPDrawSignatureView), и я установил приложение для отображения нового вида с возможностью подписи вашего имени и сохранения/отмените изображение.YPDrawSignatureView, захват/сохранение подписи в приложении iOS

Я использую функцию сохранения по умолчанию в классе, но я абсолютно не знаю, как это работает или где оно сохраняется.

Вот код для этой функции:

 // MARK: Save the Signature as an UIImage 
func getSignature() ->UIImage { 
    UIGraphicsBeginImageContext(CGSizeMake(self.bounds.size.width, self.bounds.size.height)) 
    self.layer.renderInContext(UIGraphicsGetCurrentContext()) 
    var signature: UIImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 
    return signature 
} 

Это, как я звоню его:

 @IBAction func saveButton(sender: UIButton) { 
    SignatureImage = signatureCaptureField!.getSignature() 
    dismissViewControllerAnimated(true, completion: nil) 
} 

Я хотел бы сохранить эту подпись в качестве изображения, и сделать его на main Вид приложения (в виде подписи для формы). Где он сохраняется и откуда и как я могу получить к нему доступ в этой точке зрения?

Спасибо!

ответ

1

getSignature() должен иметь возврат UIImage. Это сохраненное изображение подписи.

@IBAction func saveButton(sender: UIButton) { 
    let image = signatureCaptureField!.getSignature() 
    dismissViewControllerAnimated(true, completion: nil) 
} 

Вы можете получить доступ к NSData изображения и сохранить его:

var imageData = UIImagePNGRepresentation(image) 
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String 
let destinationPath = documentsPath.stringByAppendingPathComponent("filename.png") 
imageData.writeToFile(destinationPath, atomically: true) 

Или создать UIImageView, чтобы отобразить его обратно пользователю:

let imageView = UIImageView(image: image) 
imageView.sizeToFit() 
view.addSubview(imageView) 
+0

Так что, если бы я использовал второй вариант, создающий UImageView, мне нужно будет отобразить его на главном экране. Можно ли это сделать, создав его в рамках представленного модально представленного представления захвата подписи, а затем установив его видимость, скрытую после его отклонения, или мне нужно будет создать его в другом представлении, которое я хочу отобразить? –

+0

Не позволяйте коду подключать вас. Управляйте кодом, чтобы делать то, что вы хотите. Независимо от того, какой вид вы хотите отобразить, просто вызовите 'addSubview'. Вы можете поместить его в любое представление. Просто передайте 'image' в класс, который будет обрабатывать просмотр. – kezi

+0

Результат теперь необязательный, он возвращает только подпись, если на самом деле она есть. Существуют также функции делегирования/функции протокола, передающие состояние представления, а также свойство bool для проверки, содержит ли представление подпись. –

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