Mój projekt ma obrazy startowe dla wszystkich iPhone'ów iOS7,iOS8.
W każdym razie zwraca błędną wartość szerokości ekranu w symulatorze:
NSLog(@"%f",[UIScreen mainScreen].bounds.size.width);
NSLog(@"%f",self.view.frame.size.width);
oba zawsze wynoszą 375,0.
Czego mi brakuje ?
Odpowiedzi:
4 dla odpowiedzi № 1Rzeczywisty rozmiar ekranu iPhone6 to 750 pikseli, ale iOS nie zwraca rozmiaru piksela w ramce lub granicach, ale rozmiar w punktach!
Jeśli chcesz wiedzieć, ile pikseli znajduje się w punkcie, musisz użyć [UIScreen mainScreen].scale
.
W przypadku iPhone6plus jest to jeszcze bardziej skomplikowaneponieważ wprowadza również „natywną skalę”. Wszystko jest wciągnięte w większy obraz i zredukowany do ekranu 1920x1080, który faktycznie ma iPhone 6. Do tego byś użył [UIScreen mainScreen].nativeScale
[Uważna skala natywna jest dostępna tylko w systemie iOS8, a aplikacja ulegnie awarii, jeśli użyjesz jej w systemie iOS.]
PS Jeśli nie używasz żadnego obrazu powitalnego (innego niż -568h@2x), otrzymasz 320x568 dla iPhone'a 6 i 6+.