diff --git a/XIONControlPanel/Controllers/MainViewController.swift b/XIONControlPanel/Controllers/MainViewController.swift index d28054d..318835f 100644 --- a/XIONControlPanel/Controllers/MainViewController.swift +++ b/XIONControlPanel/Controllers/MainViewController.swift @@ -138,10 +138,13 @@ class MainViewController: UIViewController, SwitchesViewControllerDelegate, Serv width: bodyBounds.width - visualizationFrame.width, height: bodyBounds.height ) - let audioHeight = min( + let audioContentHeight = min( AudioSectionView.preferredHeight(forWidth: rightColumnFrame.width), bodyBounds.height * 0.22 ) + let audioBottomInset = view.safeAreaInsets.bottom + let audioHeight = audioContentHeight + audioBottomInset + _audioSectionView.bottomContentInset = audioBottomInset _switchesController.view.frame = CGRect( x: rightColumnFrame.minX, y: rightColumnFrame.minY, @@ -164,6 +167,7 @@ class MainViewController: UIViewController, SwitchesViewControllerDelegate, Serv let switchesHeight = bodyBounds.height - audioHeight - lightsHeight - (sectionSpacing * 2.0) _visualizationController.view.frame = .zero + _audioSectionView.bottomContentInset = 0.0 _switchesController.view.frame = CGRect( x: bodyBounds.minX, y: bodyBounds.minY, diff --git a/XIONControlPanel/Views/AudioSectionView.swift b/XIONControlPanel/Views/AudioSectionView.swift index 03cf35b..8db19b5 100644 --- a/XIONControlPanel/Views/AudioSectionView.swift +++ b/XIONControlPanel/Views/AudioSectionView.swift @@ -8,6 +8,15 @@ import UIKit final class AudioSectionView: UIView { var mixerSettingsHandler: (() -> Void)? + var bottomContentInset: CGFloat = 0.0 + { + didSet + { + if oldValue != bottomContentInset { + setNeedsLayout() + } + } + } private let _label = UILabel(frame: .zero) private let _mixerSettingsButton = AudioActionButton(type: .custom) @@ -51,7 +60,10 @@ final class AudioSectionView: UIView x: 0.0, y: _label.frame.maxY + labelSpacing, width: bounds.width, - height: max(0.0, bounds.height - _label.frame.height - labelSpacing) + height: max( + 0.0, + bounds.height - _label.frame.height - labelSpacing - bottomContentInset + ) ) }