Wyświetlacz Retina i [UIImage initWithData]
Muszę zainicjować obrazy z surowych danych pobranych z serwera, który zapewnia prawidłowy rozmiar obrazu w zależności od typu klienta iPhone ' a.
Wiem, że powinienem ustawić wartość skali na 2.0 na wyświetlaczu 640x960, jednak jest to właściwość readonly i nie może być ustawiona podczas init przy użyciu initWithData.
Jakieś pomysły?
6 answers
Nie wiem nic, co można wgrać w dane obrazu, aby powiedzieć telefonowi, że jest to obraz @2x, ale coś takiego powinno działać:
UIImage * img = ...;
img = [UIImage imageWithCGImage:img.CGImage scale:2 orientation:img.imageOrientation];
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-20 11:24:29
Ponieważ iOS 6.0 UIImage
mA metodę + imageWithData:scale:
, możesz przekazać 2.0
jako skalę dla siatkówki.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-05 13:42:50
Możesz przekazać [[UIScreen mainScreen] scale]
jako parametr skali zamiast 2.0f
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-01 20:26:42
Swift3, 4 Wersja
let image = UIImage(data: imageData, scale: UIScreen.main.scale)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-29 07:49:24
Włóż to do swojego .m jeśli chcesz lub na zaimportowanej klasie (składnia c jest ładniejsza podczas wywoływania funkcji IMAO)
BOOL isRetina(){
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
return [[UIScreen mainScreen] scale] == 2.0;
}
return NO;
}
Następnie podczas tworzenia obrazu z danymi serwera:
[UIImage imageWithData:dataFromServer scale:isRetina()?2:1];
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-19 10:42:45
AFAIK nie musisz sam ustawiać wartości skali. System operacyjny będzie obsługiwać punkty do tłumaczenia pikseli dla Ciebie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-20 11:16:08