在我的應用程序中,我有一個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繪製或沒有時間。任何想法爲什麼?
我不認爲你的比較是非常好的。也許這可以幫助:[編輯]:我想指出@rdelmar所說的,你從不比較對象與=,對象使用方法進行比較。 [1]:http://stackoverflow.com/a/8182232/2902264 – Paroxysm
我不知道這是否會起作用(我從來沒有試圖比較圖像),但是您不會比較對象與「 =「,你使用isEqual: – rdelmar
如果上面的建議不起作用,只需檢查圖像中每個像素的顏色,看看它是否等於默認顏色,如果不是,那麼你知道圖像不是空白。 –