//
// ContentView.swift
// swiftuidev
//
// Created by Cairocoders
//
import SwiftUI
import AVKit
struct ContentView: View {
var body: some View {
GeometryReader { geo in
ZStack {
if UIDevice.current.orientation.isLandscape {
Color.black
}
VStack {
player().frame(height: UIDevice.current.orientation.isLandscape ? geo.size.height : geo.size.height / 3)
.edgesIgnoringSafeArea(.all)
if !UIDevice.current.orientation.isLandscape {
Main()
}
}
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
struct player : UIViewControllerRepresentable {
func makeUIViewController(context: UIViewControllerRepresentableContext<player>) -> AVPlayerViewController {
let player1 = AVPlayer(url: URL(string: "https://test-videos.co.uk/vids/bigbuckbunny/mp4/h264/1080/Big_Buck_Bunny_1080_10s_1MB.mp4")!)
let controller = AVPlayerViewController()
controller.player = player1
return controller
}
func updateUIViewController(_ uiViewController : AVPlayerViewController, context: UIViewControllerRepresentableContext<player>) {
}
}
struct Main : View {
var body: some View {
ScrollView(.vertical, showsIndicators: false) {
VStack {
subscriber()
ForEach(1..<5){i in
VideoCard(image: "\(i)", name: "Pinoy Food Recipes \(i)")
}
}
}.padding(10)
}
}
struct subscriber : View {
var body: some View {
HStack {
Image("photo1")
.resizable()
.clipShape(Circle())
.frame(width: 50, height: 50)
VStack (alignment: .leading, content: {
Text("Cairocoders")
.fontWeight(.heavy).fixedSize()
Text("5869 Subscribers")
.fixedSize()
})
Spacer()
Button(action: {
}) {
Text("Subscribe").fontWeight(.heavy)
}.foregroundColor(.red)
}
}
}
struct VideoCard : View {
var image = ""
var name = ""
var body: some View {
HStack {
Image(image).resizable().frame(width: 120, height: 80)
VStack(alignment: .leading, content: {
Text(name).fontWeight(.heavy)
Text("Cairocoders")
Text("5689 View")
}).frame(width: UIScreen.main.bounds.width - 170, alignment: .leading)
VStack {
Button(action: {
}) {
Image(systemName: "list.dash").resizable().frame(width: 15, height: 15).foregroundColor(.black)
Spacer()
}.padding(.top, 5)
}
}
}
}
article
Tuesday, September 14, 2021
SwiftUI Simple Youtube Design with Video Player AVKit
SwiftUI Simple Youtube Design with Video Player AVKit
