Изображение iOS простирается за пределы приложения - PullRequest
2 голосов
/ 20 января 2012

У меня есть UIImageView внутри моего UIViewController. Он загружает изображение размером 81x37 с источником 0x20. Я пытаюсь создать это изображение в качестве фона и логотипа. Под этим я подразумеваю, что когда я запускаю свое приложение, мне бы хотелось, чтобы изображение охватывало весь экран, и после того, как все мои данные загружены и готовы к отображению для пользователя, я бы хотел уменьшить их, чтобы они были просто значком верхняя левая сторона экрана. Я хотел бы сказать, что код для изменения размера работает, однако он, кажется, растягивает изображение и обрезает его примерно на полпути. Так что либо он рендерит вне размеров экрана, либо делает только то, что может.

Ниже приведен фрагмент кода того, как я управляю изменением размера моего кадра, что выполняется как в моих функциях viewDidLoad, так и в моих функциях isReady.

- (void) viewDidLoad
{
    originalSize = CGRectMake(self.logoImage.frame.origin.x, self.logoImage.frame.origin.y, self.logoImage.frame.size.width, self.logoImage.frame.size.height);
    fullScreenSize = CGRectMake(0.0, 0.0, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height);
    [self.logoImage setFrame:fullScreenSize];
}

- (void)isReady:(BOOL)initialized
{
    if(initialized)
    {
        [self.logoImage setFrame:self.originalSize];
    }
    else
    {
        [self.logoImage setFrame:self.fullScreenSize];
    }
}

Ответы [ 2 ]

0 голосов
/ 07 февраля 2012

Я хотел бы поблагодарить Дамо за ответ на мой вопрос. Ответ в комментариях.

Вот ответ Дамо -

Вы проверили fullScreenSize, чтобы увидеть, находится ли кадр установлен на, фактически ориентирован правильно; т.е. растянуть изображение и отрезать его на полпути "звучит так, как будто он имеет пейзажную рамку, когда он должен иметь портретную рамку (или наоборот). Если это так, посмотрите для лучшего способа определения кадра.

0 голосов
/ 20 января 2012

Почему бы вам просто не установить originalSize = self.logoImage.frame и fullScreenSize = [[UIScreen mainScreen] bounds]?

В любом случае, предполагая, что ваш logoImage является imageView, вы должны установить contentModeimageView к UIViewContentModeAspectFit, или эквивалент?По умолчанию imageViews не масштабирует изображение в противном случае.

...