如何调整我的 UIButton 以保持纵横比

Posted

技术标签:

【中文标题】如何调整我的 UIButton 以保持纵横比【英文标题】:How to adjust my UIButton to maintain the aspect ratio 【发布时间】:2016-03-11 06:29:07 【问题描述】:

我在我的故事板上制作了一个视图控制器并添加了按钮,

我正在像这样在我的视图控制器的视图上启动一个 AVCaptureSession,

AVCaptureSession *session = [[AVCaptureSession alloc] init];
session.sessionPreset = AVCaptureSessionPresetMedium;

CALayer *viewLayer = self.view.layer;
NSLog(@"viewLayer = %@", viewLayer);
AVCaptureVideoPreviewLayer *captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];

captureVideoPreviewLayer.frame = self.view.layer.bounds;
[self.view.layer addSublayer: captureVideoPreviewLayer];

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

NSError *error = nil;
AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:&error];
if (!input) 
    // Handle the error appropriately.
    NSLog(@"ERROR: trying to open camera: %@", error);

[session addInput:input];

[session startRunning];
stillImageOutput = [[AVCaptureStillImageOutput alloc] init];
NSDictionary *outputSettings = [[NSDictionary alloc] initWithObjectsAndKeys: AVVideoCodecJPEG, AVVideoCodecKey, nil];
[stillImageOutput setOutputSettings:outputSettings];

[session addOutput:stillImageOutput];

我的问题是我的按钮被隐藏,因为预览层占据了整个屏幕我希望预览层占据整个屏幕,但也想显示用于捕获和关闭会话的按钮

我该怎么办?

【问题讨论】:

【参考方案1】:

尝试将按钮移动到视图控制器视图层次结构的顶部:

[self.view sendSubviewToFront:button];

在添加 captureVideoPreviewLayer 作为子图层后执行此操作。

【讨论】:

以上是关于如何调整我的 UIButton 以保持纵横比的主要内容,如果未能解决你的问题,请参考以下文章

UIButton 背景图像水平缩放以填充同时保持纵横比

如何使用 CSS 拉伸图像以适应屏幕并保持纵横比?

使用“Vstack”将图像大小调整为屏幕宽度,同时保持纵横比

在 CSS FlexBox 布局中自动调整图像大小并保持纵横比?

调整图像大小以保持纵横比

在 iOS 中调整图像大小并保持其纵横比