1 Commits

Author SHA1 Message Date
fe6ce3a91c MainViewController: bottom safe area inset
All checks were successful
TestFlight / Build and upload (push) Successful in 1m21s
2026-07-27 20:51:39 -07:00
2 changed files with 18 additions and 2 deletions

View File

@@ -138,10 +138,13 @@ class MainViewController: UIViewController, SwitchesViewControllerDelegate, Serv
width: bodyBounds.width - visualizationFrame.width, width: bodyBounds.width - visualizationFrame.width,
height: bodyBounds.height height: bodyBounds.height
) )
let audioHeight = min( let audioContentHeight = min(
AudioSectionView.preferredHeight(forWidth: rightColumnFrame.width), AudioSectionView.preferredHeight(forWidth: rightColumnFrame.width),
bodyBounds.height * 0.22 bodyBounds.height * 0.22
) )
let audioBottomInset = view.safeAreaInsets.bottom
let audioHeight = audioContentHeight + audioBottomInset
_audioSectionView.bottomContentInset = audioBottomInset
_switchesController.view.frame = CGRect( _switchesController.view.frame = CGRect(
x: rightColumnFrame.minX, x: rightColumnFrame.minX,
y: rightColumnFrame.minY, y: rightColumnFrame.minY,
@@ -164,6 +167,7 @@ class MainViewController: UIViewController, SwitchesViewControllerDelegate, Serv
let switchesHeight = bodyBounds.height - audioHeight - lightsHeight - (sectionSpacing * 2.0) let switchesHeight = bodyBounds.height - audioHeight - lightsHeight - (sectionSpacing * 2.0)
_visualizationController.view.frame = .zero _visualizationController.view.frame = .zero
_audioSectionView.bottomContentInset = 0.0
_switchesController.view.frame = CGRect( _switchesController.view.frame = CGRect(
x: bodyBounds.minX, x: bodyBounds.minX,
y: bodyBounds.minY, y: bodyBounds.minY,

View File

@@ -8,6 +8,15 @@ import UIKit
final class AudioSectionView: UIView final class AudioSectionView: UIView
{ {
var mixerSettingsHandler: (() -> Void)? var mixerSettingsHandler: (() -> Void)?
var bottomContentInset: CGFloat = 0.0
{
didSet
{
if oldValue != bottomContentInset {
setNeedsLayout()
}
}
}
private let _label = UILabel(frame: .zero) private let _label = UILabel(frame: .zero)
private let _mixerSettingsButton = AudioActionButton(type: .custom) private let _mixerSettingsButton = AudioActionButton(type: .custom)
@@ -51,7 +60,10 @@ final class AudioSectionView: UIView
x: 0.0, x: 0.0,
y: _label.frame.maxY + labelSpacing, y: _label.frame.maxY + labelSpacing,
width: bounds.width, width: bounds.width,
height: max(0.0, bounds.height - _label.frame.height - labelSpacing) height: max(
0.0,
bounds.height - _label.frame.height - labelSpacing - bottomContentInset
)
) )
} }