내 응용 프로그램에서 사용자 접촉에 따라 drawView UIView가 있습니다. 그것은 서명 상자로 사용하기위한 것입니다. 사용자가 "그리기"를 끝내면 승인을 클릭하고 앱이 계속 실행됩니다. 그러나 UIView 실제로 그려진 경우 확인하고 싶습니다. 그냥 공백이 아닙니다. 다른 비어있는 UIImageView를 만들고 이미지가 동일하지만 실패했는지 확인하려고했습니다. 내가 시도한 것은 다음과 같습니다.비어있는 UIView를 확인 하시겠습니까?
참고 : signatureBox는 사용자가 그릴 수있는 UIView의 하위 클래스입니다. 서명을 저장하고 빈 UIImageView의 이미지와 비교합니다.
viewDidLoad{
UIGraphicsBeginImageContext(self.signatureBox.bounds.size);
[self.signatureBox.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *imageData = UIImagePNGRepresentation(image);
self.blankImage.image = [UIImage imageWithData:imageData];
}
mySaveMethod{
UIGraphicsBeginImageContext(self.signatureBox.bounds.size);
[self.signatureBox.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *imageData = UIImagePNGRepresentation(image);
self.signatureImage = [UIImage imageWithData:imageData];
if(self.signatureImage == self.blankImage.image){
NSLog(@"Blank");
}
else{
NSLog(@"not blank");
}
}
이 nslogs는 "signatureBox"를 그렸는지 여부에 관계없이 매번 "공백이 아닙니다". 왜 그런가?
귀하의 비교가 매우 좋다고 생각하지 않습니다. 아마도 이것은 도움이 될 수 있습니다 : [link] [1] 편집 : @rdelmar가 말한 것을 지적하고 싶습니다. =와 객체를 절대 비교하지 마십시오. 객체는 비교할 메소드를 사용합니다. [1] : http://stackoverflow.com/a/8182232/2902264 – Paroxysm
이것이 작동하는지 (이미지 비교를 시도한 적이없는) 모르지만 " = ", isEqual : – rdelmar
위의 제안이 작동하지 않으면 이미지의 각 픽셀의 색상을 확인하고 기본 색상과 같은지 확인하십시오. 그렇지 않으면 이미지가 비어 있지 않습니다. –