Изменение размера нескольких изображений с ориентацией

Я нахожусь в процессе создания универсального приложения для iOS, которое, помимо других функций, позволяет пользователю создавать UIImageViews при касании.

Проблема, с которой я столкнулся, заключается в том, что при повороте устройства размер создаваемых представлений изменяется неправильно.

Я поместил код в метод контроллера основного вида, как показано ниже:

-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event
{
 //first part - creating the frame

 view = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MyImage.png"]];
 view.frame = CGRectMake(50, 50, 100, 100);
 [self.view addSubview:view];

 //second part - triggering image placement on touch

 UITouch *touch = [[event allTouches] anyObject];
 view.center = [touch locationInView:self.view];
}

Кто-нибудь знает, как я могу реализовать метод автоматического изменения размера для динамически создаваемых представлений?

Эффект, который я ищу, таков: вместо изображений, использующих старые портретные координаты, они каким-то образом изменяют размер с изменением ориентации на альбомную, так что все они видны в позициях, которые относятся к портретным.

Если бы я использовал построитель интерфейсов, это было бы достаточно просто, но я не могу найти очевидного решения, когда делаю это программно.

Это не так просто, как возврат YES для shouldAutorotateToInterfaceOrientation.

Я проверил много ресурсов вопросов/ответов для разработки iOS, и не многие из решений, похоже, ориентированы на динамически создаваемые UIImageViews и фреймы, такие как в моем примере.

Я был бы очень признателен, если бы кто-нибудь мог найти время, чтобы предоставить мне решение, или даже просто указать мне правильное направление.

Заранее спасибо,

Рори


person Sarreph    schedule 31.01.2012    source источник


Ответы (1)


установите маску автоматического изменения размера соответственно, каждый UIView имеет свойство UIViewAutoresizing

view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
person Inder Kumar Rathore    schedule 31.01.2012
comment
Большое спасибо! - Параметры FlexibleWidth/Height не были слишком полезными, но вместо этого я использовал UIViewAutoresizingFlexible(Right/Left/Top/Bottom)Margin, и они сохранили все изображения в правильных относительных местах: D - очень ценю ваша помощь. - person Sarreph; 31.01.2012