2016-01-20 3 views
0

Мне нужна помощь для установки границ и фрейма UIView, я меняю его на «полноэкранный режим», изменяя границы на «0.0f, 0.0f, 1920.0f, 1080.0f ", что работает, проблема, с которой я сталкиваюсь, - это когда мне нужно отменить UIView обратно к исходным границам и размеру кадра, но у меня возникли проблемы с настройкой этого. Могу ли я помочь?Границы и размер рамки 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)); 

      } 
+0

вы можете увидеть разницу между связанными и рамой здесь: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreAnimation_guide/CoreAnimationBasics/CoreAnimationBasics.html#// apple_ref/doc/uid/TP40004514-CH2-SW17 – MailE

ответ

2

Попробуйте с 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 представляет собой прямоугольник, выраженный как местоположение (х, у) и размер (ширина, высота) по отношению к его собственного система координат (0,0).

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

Итак, рамка поможет вам отрегулировать ваш вид в пределах супервизора.

Благодаря

+0

Границы теперь работают, но высота и ширина по-прежнему неверны – AJ152

+0

@ AJ152 Вы заменили мой код? В обоих местах рамка вместо границ. Он работает на моем конце –

+0

Да, я заменил весь раздел кода, это забавно, я запускаю NSLog, чтобы проверить Frame и результаты выглядят правильно, но в приложении ширина и высота не изменились, я знаете, что вы не видите весь код, но какую-нибудь идею, где я мог бы смотреть на такой случай? Спасибо – AJ152