更改视图层的大小和视图的位置
Posted
技术标签:
【中文标题】更改视图层的大小和视图的位置【英文标题】:Change view layer's size and view's position 【发布时间】:2013-10-04 02:12:06 【问题描述】:我正在使用 Apple 的 AVCam 示例,我正在尝试修改布局以使用 iPad。
我试图让状态栏始终存在,但是每当我启用它时,(我认为是videoPreviewView
及其viewLayer
)都会妨碍状态栏。所以我需要将它向下移动 20px 以便为状态栏腾出空间,但我不确定如何。
AVCaptureVideoPreviewLayer *newCaptureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:[[self captureManager] session]];
UIView *view = [self videoPreviewView];
CALayer *viewLayer = [view layer];
[viewLayer setMasksToBounds:YES];
CGRect bounds = [videoPreviewView bounds];
[[self view] setBounds:bounds];
newCaptureVideoPreviewLayer.bounds = bounds;
[newCaptureVideoPreviewLayer setFrame:bounds];
【问题讨论】:
【参考方案1】:把这个放在UIView *view = [self videoPreviewView];
下面
CGPoint viewCenter = view.center;
viewCenter = CGPointMake(viewCenter.x, viewCenter.y - 20)
view.center = viewCenter;
【讨论】:
出于某种原因,这似乎进一步推动了它。所以现在视图底部和最底部的工具栏之间有 20px 的间隙。我尝试将其更改为 +20,它确实将其向下移动,但当时它与工具栏重叠。【参考方案2】:将此添加到 AdamG 的答案中起到了作用,不知道为什么或者它是否是一个可行的解决方案。有人想插话吗?
CGPoint viewCenter = view.center;
viewCenter = CGPointMake(viewCenter.x, viewCenter.y + 20);
view.center = viewCenter;
CGRect temp = view.frame;
temp.size.height += -20;
view.frame = temp;
【讨论】:
以上是关于更改视图层的大小和视图的位置的主要内容,如果未能解决你的问题,请参考以下文章