mirror of
https://github.com/yattee/yattee.git
synced 2025-10-15 03:48:11 +00:00
Display more details in player view
This commit is contained in:
42
Shared/Player/VideoDetailsPaddingModifier.swift
Normal file
42
Shared/Player/VideoDetailsPaddingModifier.swift
Normal file
@@ -0,0 +1,42 @@
|
||||
import Foundation
|
||||
import SwiftUI
|
||||
|
||||
struct VideoDetailsPaddingModifier: ViewModifier {
|
||||
let geometry: GeometryProxy
|
||||
let aspectRatio: CGFloat?
|
||||
let minimumHeightLeft: CGFloat
|
||||
let additionalPadding: CGFloat
|
||||
|
||||
init(
|
||||
geometry: GeometryProxy,
|
||||
aspectRatio: CGFloat? = nil,
|
||||
minimumHeightLeft: CGFloat? = nil,
|
||||
additionalPadding: CGFloat = 35.00
|
||||
) {
|
||||
self.geometry = geometry
|
||||
self.aspectRatio = aspectRatio ?? VideoPlayerView.defaultAspectRatio
|
||||
self.minimumHeightLeft = minimumHeightLeft ?? VideoPlayerView.defaultMinimumHeightLeft
|
||||
self.additionalPadding = additionalPadding
|
||||
}
|
||||
|
||||
var usedAspectRatio: CGFloat {
|
||||
guard aspectRatio != nil else {
|
||||
return VideoPlayerView.defaultAspectRatio
|
||||
}
|
||||
|
||||
return [aspectRatio!, VideoPlayerView.defaultAspectRatio].min()!
|
||||
}
|
||||
|
||||
var playerHeight: CGFloat {
|
||||
[geometry.size.width / usedAspectRatio, geometry.size.height - minimumHeightLeft].min()!
|
||||
}
|
||||
|
||||
var topPadding: CGFloat {
|
||||
playerHeight + additionalPadding
|
||||
}
|
||||
|
||||
func body(content: Content) -> some View {
|
||||
content
|
||||
.padding(.top, topPadding)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user