-contentView-

//
//  ContentView.swift
//  swiftUI_Webview_tutorial
//
//  Created by devdepot on 2021/04/27.
//

import SwiftUI

struct ContentView: View {
    var body: some View {
//        MyWebView(urlToLoad: "https://www.naver.com")
        
        NavigationView{
            HStack{
                NavigationLink(
                    destination: MyWebView(urlToLoad: "https://www.naver.com")){
                    Text("네이버")
                }
                NavigationLink(
                    destination: MyWebView(urlToLoad: "https://www.google.com")){
                    Text("구글")
                }
                NavigationLink(
                    destination: MyWebView(urlToLoad: "https://www.daum.net")){
                    Text("다음")
                }
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

 

-MyWebView-

//
//  MyWebView.swift
//  swiftUI_Webview_tutorial
//
//  Created by devdepot on 2021/04/27.
//

import SwiftUI
import WebKit

// uikit 의 uiView 를 사용할 수 있도록 한다.
// uiViewCOntrollerRepresntable

struct MyWebView: UIViewRepresentable {
    
    var urlToLoad: String
    
    // uiview 만들기
    func makeUIView(context: Context) -> WKWebView {
        
        guard let url = URL(string: self.urlToLoad) else {
            return WKWebView()
        }
        
        //웹뷰 인스턴스 생성
        let webView = WKWebView()
        
        // 웹뷰를 로드한다.
        webView.load(URLRequest(url: url))
        
        return webView
    }
    
    // 업데이트 ui view
    func updateUIView(_ uiView: WKWebView, context: UIViewRepresentableContext<MyWebView>) {
        
    }
}

struct MyWebVie_previees: PreviewProvider{
    static var previews: some View{
        MyWebView(urlToLoad: "https://www.naver.com")
    }
}

'IOS > SwiftUI' 카테고리의 다른 글

(SwiftUI)07.Stack 정리  (0) 2021.04.27
(SwiftUI)06.CircleImage  (0) 2021.04.27
(SwiftUI)03.바인딩 @Binding  (0) 2021.04.27
(SwiftUI)02. 네비게이션,spacer,@state  (0) 2021.04.26
(SwiftUI)01. VStack,HStack  (0) 2021.04.26
//
//  ContentView.swift
//  YoutubeSwift
//
//  Created by devdepot on 2021/04/27.
//

import SwiftUI

struct ContentView: View {
    
    @State
    private var isActivated: Bool = false;
    @State
    private var testAct: Bool = true;
    var body: some View {
       

        NavigationView{
            VStack{
                HStack{
                    MyVstackViewL(isActivated: $isActivated)    //false넘김
                    MyVstackViewL(isActivated: $testAct)        //true 넘김
                    MyVstackViewL() //false 넘김
                }.padding(10).background(Color.red)
                
                NavigationLink(
                    destination: MyVstackViewL(),
                    label: {
                        /*@START_MENU_TOKEN@*/Text("Navigate")/*@END_MENU_TOKEN@*/
                    })
            }
            
        }
    }
}


struct MyVstackViewL:View {
    
    @Binding
    var isActivated: Bool
    
    //생성자
    init(isActivated: Binding<Bool> = .constant(false)) {
        _isActivated = isActivated
    }
    var body: some View{
        VStack{
            Text("1")
                .fontWeight(.bold)
                .font(.system(size: 60))
            Text("2")
                .fontWeight(.bold)
                .font(.system(size: 60))
            Text("3")
                .fontWeight(.bold)
                .font(.system(size: 60))
        }.background(self.isActivated ? Color.green : Color.yellow)
    }
}
struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

'IOS > SwiftUI' 카테고리의 다른 글

(SwiftUI)07.Stack 정리  (0) 2021.04.27
(SwiftUI)06.CircleImage  (0) 2021.04.27
(SwiftUI)04.웹뷰 띄우기  (0) 2021.04.27
(SwiftUI)02. 네비게이션,spacer,@state  (0) 2021.04.26
(SwiftUI)01. VStack,HStack  (0) 2021.04.26
//
//  MyTextView.swift
//  vitamde
//
//  Created by devdepot on 2021/04/26.
//

import SwiftUI

struct MyTextView: View {
    
    @State //어노테이션(값이 변경되면 자동으로 렌더링 된다.)
    private var index: Int = 0
    
    // 배경색 배열 준비
    private let backgroundColors = [
        Color.red,Color.yellow,Color.blue,Color.green,Color.orange
    ]
    
    var body: some View{
        VStack{
            Spacer()
            Text("배경 아이템 인덱스 \(self.index + 1)")
                .font(.system(size: 30))
                .fontWeight(.bold)
                .frame(minWidth: 0,maxWidth:.infinity,minHeight: 0,maxHeight: .infinity)
                
            Spacer()
        }.background(backgroundColors[index])
        .edgesIgnoringSafeArea(/*@START_MENU_TOKEN@*/.all/*@END_MENU_TOKEN@*/)
        .onTapGesture {
            print("배경아이템이 클릭 되었다.")
            
            if( self.index == self.backgroundColors.count - 1){
                self.index = 0
            }else{
                self.index += 1
            }
           
            
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        MyTextView()
    }
}
​
import SwiftUI



struct ContentView: View {
    
    @State //어노테이션(값이 변경되면 자동으로 렌더링 된다.)
    private var isActivated: Bool = false
    
    var body: some View {
        
        NavigationView{
            VStack{
                HStack{
                    MyVstackViewL()
                    MyVstackViewL()
                    MyVstackViewL()
                }.padding(isActivated ? 50.0 : 10)
                
                .background(isActivated ? Color.red : Color.black)
                .onTapGesture
                {
                    //애니메이션 함께
                    
                    withAnimation {
                        print("Hstack이 클릭 되었다.")
                        self.isActivated.toggle()
                    }
                    //탭 제스처 추가
                   
                }
                
                NavigationLink(destination: MyVstackViewL()){
                    Text("네비게이션")
                }.padding(.top,50)
                
                NavigationLink(destination: Text("호호")){
                    Text("호호로 이동  ")
                        .background(Color.orange)
                        .foregroundColor(.white)
                        .cornerRadius(30)
                }.padding(.top,50)
                
                NavigationLink(destination: MyTextView()){
                    Text("배경아이팀인덱스")
                }.padding(.top,50)
            }
           
        }// Navigation
        
        }
       
}


struct MyVstackViewL:View {
    var body: some View{
        VStack{
            Text("1")
                .fontWeight(.bold)
                .font(.system(size: 60))
            Text("2")
                .fontWeight(.bold)
                .font(.system(size: 60))
            Text("3")
                .fontWeight(.bold)
                .font(.system(size: 60))
        }.background(Color.yellow)
    }
}
//struct ContentView_Previews: PreviewProvider {
//    static var previews: some View {
//        MyTextView()
//    }
//}

 

 

 

'IOS > SwiftUI' 카테고리의 다른 글

(SwiftUI)07.Stack 정리  (0) 2021.04.27
(SwiftUI)06.CircleImage  (0) 2021.04.27
(SwiftUI)04.웹뷰 띄우기  (0) 2021.04.27
(SwiftUI)03.바인딩 @Binding  (0) 2021.04.27
(SwiftUI)01. VStack,HStack  (0) 2021.04.26
import SwiftUI

struct ContentView: View {
    var body: some View {
        HStack{
            MyVstackViewL()
            MyVstackViewL()
            MyVstackViewL()
        }.padding(10).background(Color.red)

    }
}


struct MyVstackViewL:View {
    var body: some View{
        VStack{
            Text("1")
                .fontWeight(.bold)
                .font(.system(size: 60))
            Text("2")
                .fontWeight(.bold)
                .font(.system(size: 60))
            Text("3")
                .fontWeight(.bold)
                .font(.system(size: 60))
        }.background(Color.yellow)
    }
}
struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

 

'IOS > SwiftUI' 카테고리의 다른 글

(SwiftUI)07.Stack 정리  (0) 2021.04.27
(SwiftUI)06.CircleImage  (0) 2021.04.27
(SwiftUI)04.웹뷰 띄우기  (0) 2021.04.27
(SwiftUI)03.바인딩 @Binding  (0) 2021.04.27
(SwiftUI)02. 네비게이션,spacer,@state  (0) 2021.04.26

+ Recent posts