Почему мой размер UIScreen и UIWindow не совпадают?

Я хочу загрузить изображение с сервера и установить его в полноэкранном режиме для iphone4s, я использую UIScreen *mainScreen = [UIScreen mainScreen]; и используйте этот экран, чтобы получить размер (960x640). Когда приложение запускается, я вставляю код в AppDelegate .

if (im!=nil){
    UIImageView *splashScreen = [[UIImageView alloc] initWithImage:im];
    [self.window addSubview:splashScreen];
    [UIView animateWithDuration:3 animations:^{splashScreen.alpha = 0.99;}
                     completion:(void (^)(BOOL)) ^{
                         [splashScreen removeFromSuperview];
    }];
}

Я заметил, что размер неправильный, затем я вышел из системы с размером self.window и обнаружил, что размер окна составляет 320x480. Как это случилось?

Вот как я могу получить размеры:

UIScreen *mainScreen = [UIScreen mainScreen];
UIScreenMode *ScreenMode = [mainScreen currentMode];
CGSize size = [ScreenMode size];
CGFloat screenWidth = size.width;
CGFloat screenHeight = size.height;

1 ответ

В этом разница между точками и пикселями.

UIScreen возвращает размер в пикселях, однако UIKit работает с точками. Вот некоторая документация Apple по этому вопросу: https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/WindowsandViews/WindowsandViews.html

Другие вопросы по тегам