50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
//
 | 
						|
//  ViewExtension.swift
 | 
						|
//  SodaLive
 | 
						|
//
 | 
						|
//  Created by klaus on 2022/05/19.
 | 
						|
//
 | 
						|
 | 
						|
import SwiftUI
 | 
						|
import Combine
 | 
						|
 | 
						|
extension View {
 | 
						|
    func screenSize() -> CGRect {
 | 
						|
        return UIScreen.main.bounds
 | 
						|
    }
 | 
						|
    
 | 
						|
    // 출처 - https://stackoverflow.com/a/58606176
 | 
						|
    func cornerRadius(_ radius: CGFloat, corners: UIRectCorner) -> some View {
 | 
						|
        clipShape( RoundedCorner(radius: radius, corners: corners) )
 | 
						|
    }
 | 
						|
    
 | 
						|
    func hideKeyboard() {
 | 
						|
        UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
 | 
						|
    }
 | 
						|
    
 | 
						|
    /// A backwards compatible wrapper for iOS 14 `onChange`
 | 
						|
    @ViewBuilder func valueChanged<T: Equatable>(value: T, onChange: @escaping (T) -> Void) -> some View {
 | 
						|
        if #available(iOS 14.0, *) {
 | 
						|
            self.onChange(of: value, perform: onChange)
 | 
						|
        } else {
 | 
						|
            self.onReceive(Just(value)) { (value) in
 | 
						|
                onChange(value)
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
    
 | 
						|
    @ViewBuilder func scrollContentBackgroundHidden() -> some View {
 | 
						|
        if #available(iOS 16.0, *) {
 | 
						|
            self.scrollContentBackground(.hidden)
 | 
						|
        }
 | 
						|
    }
 | 
						|
    
 | 
						|
    @ViewBuilder func progressColor(color: Color) -> some View {
 | 
						|
        if #available(iOS 16.0, *) {
 | 
						|
            self.tint(color)
 | 
						|
        } else {
 | 
						|
            self.accentColor(color)
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |