Изменить фоновое изображение на Ipad после поворота - PullRequest
2 голосов
/ 07 марта 2011

Я показываю bg моего приложения, используя UIImageView.Для поддержки правильного вращения интерфейса я пишу layoutSubviews метод.В этом методе свойство .frame изменяется правильно, но когда я пытаюсь изменить изображение UIImageView, просто так:

view = [self viewWithTag:1002];    
 ((UIImageView *)view).image = [UIImage imageNamed:@"portrait.png"];

ничего не изменилось.Я что-то не так сделал или невозможно изменить образ UIImageView в методе layoutSubviews?

Ответы [ 2 ]

4 голосов
/ 07 марта 2011

попробуйте

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {

    // change background here

    }
1 голос
/ 07 марта 2011

Вы управляете ротацией ваших просмотров с помощью UIViewController (обязательно ознакомьтесь с документацией здесь: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html). Если вы реализовали UIViewController для вашего UIImageView Вы можете установить изображение в методе viewDidLoad:.

Вы не должны переопределять метод layoutSubviews: для выполнения этого действия. layoutSubviews: должен делать то, что написано в имени - он должен выполнять позиционирование и определение размеров любых подвидов, которые в данный момент имеет это представление. Вам не нужно переопределять этот метод, если вы не хотите делать какую-то специальную пользовательскую компоновку подпредставлений, и он вызывается в цикле выполнения, когда UIView установлен на «требует изменения размера».

Я настоятельно рекомендую вам установить изображение из какого-то другого места в коде. Если вы хотите, чтобы изображение изменялось при повороте вида, вы можете установить изображение в методе - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation подкласса UIViewController .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...