Gdybym instancji UIImage tak:UIImage, sprawdź czy zawierają wizerunek
UIImage *image = [[UIImage alloc] init];
obiekt jest tworzony, ale nie zawiera żadnych obraz.
Jak mogę sprawdzić, czy mój obiekt zawiera obraz, czy nie?
Gdybym instancji UIImage tak:UIImage, sprawdź czy zawierają wizerunek
UIImage *image = [[UIImage alloc] init];
obiekt jest tworzony, ale nie zawiera żadnych obraz.
Jak mogę sprawdzić, czy mój obiekt zawiera obraz, czy nie?
Możesz sprawdzić, czy ma jakieś dane obrazu.
UIImage* image = [[UIImage alloc] init];
CGImageRef cgref = [image CGImage];
CIImage *cim = [image CIImage];
if (cim == nil && cgref == NULL)
{
NSLog(@"no underlying data");
}
[image release];
Sprawdź z CGImageRef z siebie pogodowymi zawiera wartość null oznacza UIImage sprzeciw nie zawiera wizerunek .......
Sprawdź cgImage
lub ciImage
w Swift 3
public extension UIImage {
public var hasContent: Bool {
return cgImage != nil || ciImage != nil
}
}
CGImage: If the UIImage object was initialized using a CIImage object, the value of the property is NULL.
CIImage: If the UIImage object was initialized using a CGImageRef, the value of the property is nil.
możesz podać aktualizację dla Swift 3 –
@AnkitKumarGupta zrobione – onmyway133
To jest zaktualizowana wersja @Kreiri, wstawiłem metodę i naprawiono błąd logiczny:
- (BOOL)containsImage:(UIImage*)image {
BOOL result = NO;
CGImageRef cgref = [image CGImage];
CIImage *cim = [image CIImage];
if (cim != nil || cgref != NULL) { // contains image
result = YES;
}
return result;
}
Obiekt UII mógł bazować tylko na CGImageRef lub CIImage. Jeśli oba są zerowe, oznacza to, że nie ma obrazu. Przykład użycia metody podając:
if (![self containsImage:imageview.image]) {
[self setImageWithYourMethod];
}
mam nadzieję, że komuś pomoże.
Dziękuję bardzo, to działa doskonale! – Jonathan
Ale [obraz CIImage]; dostępne tylko w systemie iOS 5. A co z 4.3? –
nie działa jako cim zwraca zero – hii