У меня есть UIView, который я хочу изменить размер и положение, когда вид вращается. Тем не менее, я должен быть в состоянии сделать это программно, не используя настройки макета и автоматического изменения размера. С этой целью я попытался изменить рамку и границы представления, когда устройство вращается, и вызвать перерисовку, но независимо от того, какую комбинацию переменных я использую, результат всегда получается неверным. Я просто не могу понять, что происходит, чтобы испортить код, и здесь слишком много кода, чтобы публиковать здесь. Может ли кто-нибудь дать мне какие-либо советы или методы, как этого можно достичь? Я просто не знаю, где еще искать.
Это код, который я использую для макета портрета, который работает:
clusterMap.frame = CGRectMake(0, self.view.frame.size.height/2,
self.view.frame.size.width,
self.view.frame.size.height/2);
clusterMap.bounds = CGRectMake(-clusterMap.frame.size.width/2,
-clusterMap.frame.size.height/2,
clusterMap.frame.size.width,
clusterMap.frame.size.height);
[clusterMap setNeedsDisplay];
Но когда я пытаюсь использовать адаптированную версию этого кода с другими цифрами, он просто отображается так, как если бы экран был портретным. Если я поменяю фигуры так, что некоторые из них будут портретными, а некоторые - пейзажными, произойдут все виды странных вещей. Один пример, который я могу описать, состоит в том, что изображение может рисоваться в правильных пропорциях, но обрезаться до границы неправильной пропорции. Я пробовал каждую комбинацию цифр, о которой я могу думать, систематически меняя ширину и высоту между парными значениями по одному, и ни одна из этих комбинаций не работает.