Jaka jest różnica między UIImage
i UIImageView
? Czy ktoś może wytłumaczyć to na przykładzie?Różnica między UIImage i UIImageView
Odpowiedz
Przykład:
UIImage *bgImage = [UIImage imageNamed:@"[email protected]"];
UIImageView *backgroundImageView = [[UIImageView alloc] initWithImage:bgImage];
backgroundImageView.frame = [[UIScreen mainScreen] bounds];
A
UIImage
obiekt to wysokopoziomowy sposób wyświetlania danych obrazu. Możesz tworzyć obrazy z plików, z obiektów obrazu kwarcowego lub z otrzymywanych danych surowego obrazu . Klasa UIImage oferuje również kilka opcji rysowania obrazów w bieżącym kontekście graficznym przy użyciu różnych trybów mieszania i przezroczystości: mieszania.Obiekty obrazu są niezmienne, więc po ich utworzeniu nie można zmienić ich właściwości . Oznacza to, że zazwyczaj określasz właściwości obrazu w czasie inicjalizacji lub polegasz na metadanych obrazu, aby uzyskać wartość właściwości. Jednak w niektórych przypadkach klasa UIImage zapewnia wygodne metody uzyskiwania kopii obrazu, która wykorzystuje niestandardowe wartości dla właściwości.
Ponieważ obiekty obrazu są niezmienne, nie zapewniają również bezpośredniego dostępu do swoich danych obrazu. Można jednak uzyskać obiekt NSData zawierający dane w formacie PNG lub JPEG dla obrazu przy użyciu funkcji
UIImagePNGRepresentation
i .System wykorzystuje obiekty obrazów do reprezentowania zdjęć zrobionych aparatem w obsługiwanych urządzeniach. Aby zrobić zdjęcie, należy użyć klasy U2magePickerController klasy . Aby zapisać zdjęcie w albumie zapisanych zdjęć , użyj funkcji
UIImageWriteToSavedPhotosAlbum
.
UIImageView
dostarcza pojemnik widok oparty na wyświetlanie albo pojedynczego obrazu lub do animacji serii obrazów. W przypadku animacji obrazów klasaUIImageView
zapewnia ustawienia umożliwiające określenie czasu trwania i częstotliwości animacji na . Możesz także uruchomić i swobodnie zatrzymać animację.Nowe obiekty widoku obrazu są skonfigurowane tak, aby ignorować zdarzenia użytkowników przez domyślną wartość . Aby obsłużyć zdarzenia w niestandardowej podklasie
UIImageView
, należy jawnie zmienić wartość właściwościuserInteractionEnabled
naYES
po zainicjowaniu obiektu.Gdy obiekt
UIImageView
wyświetla jeden ze swoich obrazów, rzeczywiste zachowanie opiera się na właściwościach obrazu i widoku. Jeśli albo jedna z właściwości obrazu jest niezerowa, obraz jest rozciągany zgodnie z wartościami w tych właściwościach. W przeciwnym razie obraz jest przeskalowany, dopasowany do rozmiaru, lub umieszczony w widoku obrazu zgodnie z właściwością contentMode z widoku . Zaleca się (ale nie jest to wymagane), aby obrazy były takie same, jak obrazy . Jeśli obrazy mają różne rozmiary, każdy będzie dopasowywany osobno w zależności od tego trybu.Wszystkie obrazy powiązane z obiektem
UIImageView
powinny mieć tę samą skalę . Jeśli aplikacja używa obrazów o różnych skalach, mogą one nieprawidłowo renderować.
UIImage
zawiera dane obrazu. UIImageView
to niestandardowy widok przeznaczony do wyświetlania UIImage
.
UIImage
to obiekt danych przechowujący bajty obrazu.
UIImageView
to kontrola wyświetlająca dane UIImage
.
UIImage
obiekty przechowywania z obrazu (tj dane z pliku PNG)
UIImageView
obiekty są wykorzystywane do wyświetlania UIImage
W skrócie: utworzyć instancję UIImage
obiektu do przechowywania danych obrazu, podobnie jak to:
NSString *sourcePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"/picture.jpg"]; //assuming your image is in your app's bundle
UIImage *img = [[UIImage alloc]initWithContentsOfFile:sourcePath];
Następnie tworzymy wystąpienie UIImageView
za pośrednictwem IB lub kodu, aby wyświetlić obraz na ekran, taki jak ten:
[imageView1 setImage:img]; //assume you already create an instance of UIImageView named imageView1