Если мнения имеют одинаковый размер, то это не большая проблема. Предположим, что ваши два представления X и Y называются xView и yView. Вы могли бы сделать что-то вроде этого:
CGRect xViewFrame = xView.frame;
UIViewAutoresizing xViewResizingConstraints = xView.autoresizingMask;
xView.frame = yView.frame;
xView.autoresizingMask = yView.autoresizingMask;
yView.frame = xViewFrame;
yView.autoresizingMask = xViewResizingConstraints;
Если вы хотите, анимированные, вы можете поместить его внутри [UIView animateWithDuration: animations:^{}]
блока, и он должен работать. (Я не проверял его)
Вы также можете изменить CGRect xViewFrame
на использование CGPoint xViewCenter
и обменять центры с одинакового размера.
Свойство autoresizingMask
сообщает программе, что делать в случае изменения размера экрана - как путем изменения ориентации, так и из-за размера экрана устройства или по любой другой причине.
Если виды НЕ того же размера, вам придется иметь дело с соответствующими полями ваших представлений и следить за тем, чтобы они не обрезались за пределами экрана.
Надеюсь, это поможет.
EDIT
кажется, что вы используете UILabels либо ваш взгляд, или подвид из двух точек зрения. Если это так, убедитесь, что вы также замените NSTextAlignment UILabels. Что-то вроде этого:
NSTextAlignment xTextAlignment = xView.titleLabel.textAlignment;
xView.titleLabel.textAlignment = yView.titleLabel.textAlignment;
yView.titleLabel.textAlignment = xTextAlignment;
Позвольте мне попробовать это –
Пожалуйста, смотрите изображения, которые я загружены –
я не смог получить обменивать Разбивочные работать. я просто жестко закодировал и изменил выравнивание при начале обмена –