2017-01-07 2 views
1

Я новичок в iOS, и перед вами стоит проблема проверки валидации. Я создал подпись, как взгляд How to draw Signature on UIView, и теперь я хочу сделать проверку с помощью этого кодаКак проверить UIView ноль или нет в объекте c

-(IBAction)SavebtnClick:(id)sender 
{ 

    if(drawSignView==nil) 
    { 
     UIAlertView *alertviewshow =[[UIAlertView alloc] initWithTitle:@"Warning!" message:@"Pease Sign" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; 
     [alertviewshow show]; 
    } 
    else if (drawSignViewClient==nil) 
    { 
     UIAlertView *alertviewshow =[[UIAlertView alloc] initWithTitle:@"Warning!" message:@"Please Sign" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; 
     [alertviewshow show]; 
    } 
    else 
    { 

     viewcontroller1 *management =[[viewcontroller1 alloc] initWithNibName:@"viewcontroller1" bundle:nil]; 
     [self.navigationController pushViewController:management animated:YES]; 
    } 
} 

Но я не получаю успех. Пожалуйста, скажите мне, что я делаю неправильно.

enter image description here

Я хочу сделать проверку.

enter image description here

, если я не подпишу это показывает сообщение.

Пожалуйста, дайте мне предложение.

Заранее благодарен!

сохраняет изображение и используемое состояние

UIGraphicsBeginImageContext(self.drawSignView.bounds.size); 
    [[self.drawSignView.layer presentationLayer] renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    // NSData *postData = UIImageJPEGRepresentation(viewImage, 1.0); 


    // Store the data 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 


    NSData *imageData = UIImageJPEGRepresentation(viewImage, 100); 
    [defaults setObject:imageData forKey:@"image"]; 

    [defaults synchronize]; 


    if(viewImage==nil) 
    { 
     UIAlertView *alertviewshow =[[UIAlertView alloc] initWithTitle:@"Warning!" message:@"Pease Sign" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; 
     [alertviewshow setTag:1]; 
     [alertviewshow show]; 
    } 

Но это не работает, потому что она содержит пустое изображение.

+1

Можете ли вы показать некоторый код? В чем проблема с этим кодом? Что вы хотите сделать точно указать явно. –

+0

Пожалуйста, объясните больше для этого ... –

+0

является ли это Signatureview экземпляром? – Axel

ответ

0

Пожалуйста, проверьте этот ответ

UIGraphicsBeginImageContext(self.drawSignView.bounds.size); 
    [[self.drawSignView.layer presentationLayer] renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    // NSData *postData = UIImageJPEGRepresentation(viewImage, 1.0); 

    NSData *imgData = [[NSData alloc] initWithData:UIImageJPEGRepresentation((viewImage), 0.5)]; 
    int imageSize = imgData.length; 
    NSLog(@"size of image in KB: %d ", imageSize/1024); 



    UIGraphicsBeginImageContext(self.drawSignViewClient.bounds.size); 
    [[self.drawSignViewClient.layer presentationLayer] renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *viewImageClient = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    // NSData *postData = UIImageJPEGRepresentation(viewImage, 1.0); 

    NSData *imgDataClient = [[NSData alloc] initWithData:UIImageJPEGRepresentation((viewImageClient), 0.5)]; 
    int imageSizeClient = imgDataClient.length; 
    NSLog(@"size of image in KB: %d ", imageSizeClient/1024); 

    int OCS=imageSize/1024; 
    int Client=imageSizeClient/1024; 

    if(OCS<3) 
    { 
     alertviewshow=[[UIAlertView alloc] initWithTitle:@"Warning!" message:@"Please do Signature " delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; 
     [alertviewshow setTag:1]; 
     [alertviewshow show]; 
    } 
    else if (Client<3) 
    { 
     alertviewshow=[[UIAlertView alloc] initWithTitle:@"Warning!" message:@"Please do Signature " delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; 
     [alertviewshow setTag:1]; 
     [alertviewshow show]; 
    } 
else 
{ 
//Write Your Code.... 
} 
1

Для этого мое предложение - проверить UIImage, а не UIView. Это означает, что вы получаете изображение подписи или нет. Затем вы должны проверить, как

if(singatureImage1 == nil){ 
} 
else{ 
} 

И еще подписи

if(singatureImage2 == nil) 
{ 

} 
else{ 
} 

И если вы получаете не всухую изображение без знака его затем использовать SinatureView, который даст вам всухую изображение, если вы did't подписать его, то вы можете проверить его.

Если вы отметили UIView (т. Е. Ваш вид подписи) ник или нет, вы получите всегда не нулевой вид, потому что вы его инициализировали.

+0

@piysuhPatel Да, я получаю изображение подписи. – Muju

+0

Без знака вы получаете изображение подписи? –

+0

Да без подписи Я также получаю белое изображение. – Muju

2
UIGraphicsBeginImageContextWithOptions(self.drawSignView.bounds.size, NO, [UIScreen mainScreen].scale); 

[self.drawSignView drawViewHierarchyInRect:self.drawSignView.bounds afterScreenUpdates:YES]; 
UIImage *signImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

if(signImage) 
    { 
    //Get Image from sign view Succesfully 
    } 
else 
{ 
    UIAlertView *alertviewshow =[[UIAlertView alloc] initWithTitle:@"Warning!" message:@"Please Sign" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; 
    [alertviewshow show]; 
} 

Попробуйте этот код, его определенную работу.

+0

[self.drawSignView drawViewHierarchyInRect: self.drawSignView.bounds afterScreenUpdates: YES]; –

+0

Не работает. Это всегда происходит, если условие. – Muju