Границы и размер кадра UIView

Мне нужна помощь, чтобы установить границы и фрейм UIView, я меняю его на «полноэкранный режим», изменяя границы на «0.0f, 0.0f, 1920.0f, 1080.0f», это работает, проблема, с которой я сталкиваюсь, заключается в том, что мне нужно вернуть UIView к исходным границам и размеру кадра, но у меня проблемы с настройкой этого. Могу я получить помощь?

CGRect rect = self.glView.frame;

            if (!CGRectEqualToRect(self.view.frame, rect))
            {
                NSLog(@"Switching to Full Screen now...");

                UIView *image = [_avplayController drawableView];

                image.frame =  CGRectMake(0.0f, 0.0f, 1920.0f, 1080.0f);

                self.glView.frame = image.frame;

            }
            else
            {
                NSLog(@"Switching to Normal Screen...");


                NSLog(@"Old Frame %@", NSStringFromCGRect(self.glView.frame));
                NSLog(@"Old Center %@", NSStringFromCGPoint(self.glView.center));

                // New Bounds and Frame size
                CGRect frame = self.glView.bounds;
                frame.size.height = 927.0f;
                frame.size.width = 619.0f;
                frame.origin.x = 931.0f;
                frame.origin.y = 65.0f;
                self.glView.bounds = frame;

                NSLog(@"New Frame %@", NSStringFromCGRect(self.glView.frame));
                NSLog(@"New Center %@", NSStringFromCGPoint(self.glView.center));

            }

person AJ152    schedule 20.01.2016    source источник
comment
здесь вы можете увидеть разницу между привязкой и рамкой: developer.apple.com/library/mac/documentation/Cocoa/Conceptual/   -  person MailE    schedule 20.01.2016


Ответы (1)


Попробуйте использовать Frame вместо Bounds

CGRect frame = self.glView.frame;
frame.size.height = 927.0f;
frame.size.width = 619.0f;
frame.origin.x = 931.0f;
frame.origin.y = 65.0f;
self.glView.frame = frame;

Границами UIView является прямоугольник, выраженный как местоположение (x, y) и размер (ширина, высота) относительно его собственной системы координат (0,0).

Фрейм UIView - это прямоугольник, выраженный как местоположение (x, y) и размер (ширина, высота) относительно супервизора, в котором он содержится.

Итак, рамка поможет вам настроить вид в супервизоре.

Спасибо

person MS.    schedule 20.01.2016
comment
Границы теперь работают, но высота и ширина все еще неверны. - person AJ152; 20.01.2016
comment
@ AJ152 Вы заменили мой код? В обоих местах рамка вместо границ. Это работает на моем конце - person MS.; 20.01.2016
comment
Да, я заменил весь фрагмент кода, это забавно, я запускаю NSLog, чтобы проверить фрейм, и результаты выглядят правильно, но в приложении ширина и высота не изменились, я знаю, что вы не видите весь код, но есть ли идеи, где я мог бы посмотреть на такой случай? Спасибо - person AJ152; 20.01.2016
comment
Не уверен, что произошло, но после перезапуска Xcode теперь он работает. благодаря. - person AJ152; 20.01.2016