2012-03-05 3 views
1

Я хотел бы иметь представление (UIView) с двумя окнами UIImageView, , а затем перемещать два изображения (одновременно) по экрану.Перемещение UIView с subviews

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

Я бы подумал, что конечный результат будет таким же, но это не так. Почему бы и нет?

Сценарий 1:

UIView mainView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
UIImageView firstImage = [[UIImageView alloc] initWithFrame:muchSmallerRect]; 
UIImageView secondImage = [[UIImageView alloc] initWithFrame:muchSmallerRect]; 
[mainView addSubview:firstImage]; 
[mainView addSubview:secondImage]; 
firstImage.center = someSpecificPoint; 
secondImage.center = someSpecificPoint; 

Сценарий 2:

UIView mainView = [[UIView alloc] initWithFrame:muchSmallerRect]; 
UIImageView firstImage = [[UIImageView alloc] initWithFrame:muchSmallerRect]; 
UIImageView secondImage = [[UIImageView alloc] initWithFrame:muchSmallerRect]; 
[mainView addSubview:firstImage]; 
[mainView addSubview:secondImage]; 
mainView.center = someSpecificPoint; 
+1

Не могли бы вы предоставить более подробную информацию о «разнице в конечных результатах»? – dasblinkenlight

ответ

0

Вы говорите о двух разных системах координат. mainView.center выражается в системе координат вида, которая содержит mainView, тогда как firstView.center и secondView.center находятся в терминах системы координат mainView. Вы можете, конечно, переместить firstView и secondView, переместив вид, который их содержит, но вам нужно перевести эти две системы координат, если вы хотите получить тот же результат, что и вы, переместив оба представления.

+0

Я думал, что, поскольку 'muchSmallerRect = CGRectMake (0.0, 0.0, 50.0, 50.0);' и все представления (mainView и два subview UIIMageViews) имеют одинаковый размер, разные системы координат выстраиваются в линию. Очевидно, вы правы, так как конечные результаты сильно различаются. Исправлено ли это с помощью 'convertPoint: fromView:'? – coco

Смежные вопросы