2017-01-07 12 views
1

私はiOSで新しく、ビューの検証を行う際に問題に直面しています。私は、ビュー How to draw Signature on UIViewのような署名を作成している、と今私はこのコードUIViewが無意味であるかどうかを確認する目的はありません

-(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

私の提案は、UIViewではなくUIImageをチェックすることです。つまり、署名イメージを取得しているかどうかです。そして、あなたは

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

のように、別の署名

if(singatureImage2 == nil) 
{ 

} 
else{ 
} 

をチェックする必要がありますそして、あなたは看板がないわけではないnilの画像を取得した場合、それは、あなたがそれに署名did't場合にはnilイメージを与えるであろうSinatureViewを使用それを検証することができます。

UIView(つまり、あなたの署名ビュー)がnilであるかどうかをチェックすると、初期化されているため常に表示されなくなります。

+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

関連する問題