2016-01-20 95 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的邊界是矩形,表示爲位置(x,y)和尺寸(寬度,高度)相對於它的自己座標系(0,0)。

UIView的框架是矩形,表示爲相對於其所包含的位置(x,y)和大小(寬度,高度)。

因此,框架將幫助您在超視圖內調整視圖。

感謝

+0

現在界限似乎有效,但高度和寬度仍然不正確 – AJ152

+0

@ AJ152你替換了我的代碼嗎?在這兩個地方,框架而不是邊界。它在我的工作 –

+0

是的,我代替了整個代碼段,這很有趣,我運行NSLog檢查框架和結果看起來是正確的,但在應用程序中,寬度和高度沒有改變,我知道你沒有看到整個代碼,但有什麼想法,我可以看看這樣的情況?謝謝 – AJ152