Mam problem, którego po prostu nie mogłem wymyślić. Mam zrobioną aplikację, która zrobi zdjęcie z przodu i jedną z tylnej kamery, a następnie scalę je ze sobą.Załaduj obrazy siatkówki (wysokiej jakości) programowo (na przyciskach)
Nazwa aplikacji jest GroupCam
Jednak mam problem, w którym moi UIButtons nie zostanie załadowany jako siatkówki obrazów od początku. Jeśli ustawię je jako @ 2x w konstruktorze interfejsów, będą one wyświetlane w wysokiej jakości, ale gdy je ponownie załaduję programowo, zamiast tego pojawią się niskie wersje.
Wynika to z faktu, że po zrobieniu zdjęcia i zmianie jego wyglądu obrazy przycisków zmieniają się, ale gdy użytkownik naciśnie przycisk Wstecz, ikony aparatu będą wyglądać okropnie (ponieważ są ładowane wersje niskiej jakości) .
Proszę sprawdzić poniższe zdjęcia:
Pierwszy ekran: Tylko prawy górny przycisk jest zniekształcony, bo jestem sprawdzanie wartości lampy błyskowej i „załadunek” odpowiedni obraz programowo.
Drugi ekran: Użytkownik został przeniesiony do innego ekranu i wrócił do pierwszego, wszystkie przyciski zostały przeładowane i teraz wszyscy są zniekształcone.
Jeśli ktoś ma jakiś pomysł, dlaczego tak się dzieje, że naprawdę to doceniam!
Dzięki.
Edytuj:
Tak ładuję obrazy.
[self.flashButton setImage:[UIImage imageNamed:@"flashOff"]
forState:UIControlStateNormal];
Czytałem gdzieś w internecie, że robi to automatycznie załaduje najbardziej odpowiednią wersję obrazu.
Próbowałem to również, ale wynik jest taki sam:
[self.takeButton setImage:[UIImage imageNamed:@"takePhoto.png"] forState:UIControlStateNormal];
Mam świetne wyniki, używając obrazów normalnych i siatkówkowych w aplikacji. Więc sugeruję, abyś wybrał normalną rozdzielczość tych obrazów i nie włączaj ich do swojego projektu (przez trzecie okienko po prawej stronie - po prostu odznacz pole wyboru). Teraz twoja aplikacja ma TYLKO obrazki siatkówki. Cóż, jeśli coś pójdzie nie tak, to coś w twojej aplikacji się zepsuło. Występuje pewien problem z [UIImage imageNamed: foo.png]. Jeśli zmienisz ten obraz, wszyscy kolejni użytkownicy tego obrazu otrzymają zmodyfikowany obraz. Ponownie odczytaj UIImage imageNamed: –
Po prostu ponownie przeczytałem ci pytanie, a zobaczyłem właśnie to stwierdzenie: "Jeśli ustawię je jako" @ 2x "na konstruktorze interfejsów". Tak więc, w IB, wpisałeś ich nazwy jako "[email protected]", i to działa. Więc jedyną rzeczą, o której mogę myśleć, że twój problem może być, jest format "@ 2x". Czy jesteś pewien, że poprawnie nazwałeś te obrazy - "[email protected]", NOT & 2x.png itd. Wygląda na to, że iOS nie widzi plików hi rez i to jest TYLKO powód, dla którego mogę myśleć, że to wytłumaczyłoby to . Więc spróbuj usunąć "@ 2x" w IB i zobacz, co się stanie. Założę się, że przez cały czas masz cały niski rez. –
tak są sformatowane i poprawnie nazwane. Obrazy będą ładowane w jakości HD zupełnie bez zarzutu, jedynym problemem jest to, kiedy ładuję je programowo. iOS decyduje się załadować plik o niskiej rozdzielczości. – Pochi