Полноэкранное UIImageView выравнивание по низу - PullRequest
2 голосов
/ 07 июля 2011

Со следующим кодом:

UIImageView *largeImageView = [[UIImageView alloc] initWithImage:theImage];
[largeImageView setContentMode:UIViewContentModeScaleAspectFit];
largeImageView.frame = [[UIScreen mainScreen] applicationFrame];

[viewController.view addSubview:largeImageView];
viewController.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:viewController animated:YES];

Я ожидаю, что изображение будет в верхней части просмотра, а не внизу.Я дважды проверил происхождение x и y, и они равны 0,0.

Вот скриншот: http://cl.ly/8F3J

Ответы [ 2 ]

1 голос
/ 07 июля 2011

Спасибо Томми за то, что он придумал что-то вслух и помог в отладке, я понял, что я делаю неправильно.Я изменил порядок операций и добавил изображение в качестве подпредставления , после я поместил контроллер представления в стек навигации.Это исправило проблему, поскольку у моего контроллера представления было новое представление от контроллера Nav.

0 голосов
/ 07 июля 2011

largeImageView является подпредставлением viewController.view, поэтому его координаты относительно его суперпредставления.Вероятно, вы хотите что-то более похожее на:

// the bounds of viewController.view contain its correct size, but
// have an origin of (0, 0)
largeImageView.frame = viewController.view.bounds;

[viewController.view addSubview:largeImageView];

Что, вероятно, происходит в тот момент, когда вы получаете кадр, намного больший, чем размер представления контроллера представления, то факт, что UIViewContentModeScaleAspectFit будет добавлять некоторыепространство в верхней и нижней части вида по мере необходимости (при условии, что ваше изображение пропорционально шире, чем целевой вид) выталкивает изображение из нижней части экрана.

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