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));
            }

尝试使用 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) 的位置 (x,y) 和大小(宽度、高度)。

UIView 的框架是矩形,表示为相对于它所包含的超级视图的位置 (x,y) 和大小(宽度、高度)。

因此,框架将帮助您在超级视图中调整视图。

谢谢

相关内容

  • 没有找到相关文章

最新更新