2017-01-07 35 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,这将给你无图像如果我以前不签字,然后你可以验证它。

如果您检查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]; 
} 

试试这个代码它的definatly工作。

+0

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

+0

不起作用。它总是进入如果条件。 – Muju