RoundedRectangle 사용시 border 컬러와 fill 컬러를 다르게 사용하고 싶은 경우, 참고로 RounedRectangle에서 .fill 과 .stroke를 함께 사용할 수 없다. 아마도 서로 대치되는 개념이기 때문에 함께 사용하지 못하는 것 같다. import SwiftUI struct ContentView: View { var body: some View { RoundedRectangle(cornerRadius: 25) .fill(Color.green) .frame(width: 100, height: 100) .overlay( RoundedRectangle(cornerRadius: 25) .stroke(Color.blue, lineWidth: 4) ) } } struct ContentV..
1. Basic Shadow: .shadow(color: Color.black.opacity(0.2), radius: 4, x: 0, y: 2) 2. Colored Shadow: .shadow(color: Color.blue.opacity(0.4), radius: 8, x: 0, y: 4) 3. Inner Shadow: .shadow(color: Color.black.opacity(0.6), radius: 8, x: 0, y: 0) .shadow(color: Color.white.opacity(0.4), radius: 8, x: 0, y: 0) 4. Gradient Shadow: .background( LinearGradient(gradient: Gradient(colors: [Color.red, Col..
.background 방식 Button { let utterance = AVSpeechUtterance(string: word.alphabet ?? "") utterance.voice = AVSpeechSynthesisVoice(language: "en-US") DoctorSLApp.avSpeechSynthesizer.speak(utterance) } label: { Image(systemName: "speaker.wave.3") .foregroundColor(.accentColor) .frame(width: 50, height: 50, alignment: .center) .background(.ultraThinMaterial, in: Circle()) } .clipShape 방식 Button { let..
1. C(Create Data) let insert_learningLogEntity = LearningLogEntity(context: self.moc) insert_learningLogEntity.alphabet = wordEntityExtend.alphabet ?? "" insert_learningLogEntity.meaning = wordEntityExtend.meaning ?? "" insert_learningLogEntity.registrationDate = Date.now if self.moc.hasChanges { do { try self.moc.save() } catch { if let nsError = error as NSError? { fatalError("Unresolved Error..
TapGesture는 터치 입력에 대한 액션을 처리하는 제스처 중 하나입니다. 사용자가 특정 뷰를 탭할 때 트리거되는 이벤트입니다. TapGesture를 사용하여 사용자가 화면에서 특정 영역을 탭할 때 실행되는 코드를 정의할 수 있습니다. SwiftUI에서는 TapGesture를 사용하기 위해 다음과 같은 코드를 작성합니다. struct ContentView: View { var body: some View { Text("Tap Me!") .onTapGesture { print("Tapped!") } } } 위의 코드에서는 Text 뷰에 TapGesture를 추가하여, 사용자가 해당 뷰를 탭할 때 "Tapped!" 메시지를 출력합니다. onTapGesture 클로저 내부에는 사용자가 원하는 코드를 추가할..
A.swift @State private var currentIndex: Int = 0 B(currentIndex: self.$currentIndex) B.swift @Binding var currentIndex: Int init(currentIndex: Binding) { _currentIndex = currentIndex } TabView(selection: self.$currentIndex) { ForEach(self.wordEntityExtend.indices, id: \.self) { index in VStack { Text("\(self.currentIndex)") } } } .tabViewStyle(.page(indexDisplayMode: .never))
// // YoutubeView.swift // DoctorSL // // Created by 장정훈 on 2022/05/21. // import SwiftUI import WebKit struct YouTubeView: UIViewRepresentable { let youtubeEmbed: String func makeUIView(context: Context) -> WKWebView { return WKWebView() } func updateUIView(_ uiView: WKWebView, context: Context) { guard let youtubeUrl = URL(string: "https://www.youtube.com/embed/\(youtubeEmbed)") else {return} ..
There is no programmatic way to control the system volume in iOS, iOS에서는 프로그래밍 방식으로 시스템 음량을 조절 할 수 있는 방법을 제공하지 않지 않는다. but you can use the MediaPlayer framework’s MPVolumeView class to present a standard user interface for controlling system volume. 하지만 "MPVolumeView class"를 사용해서 시스템 볼륨을 제어 할 수 있다. extension MPVolumeView { static func setVolume(_ volume: Float) -> Void { let volumeView = MPVolum..
목차 Task await async mainActor Task & await & async & @MainActor init() { Task { await handleCameraPreviews() } } func handleCameraPreviews() async { let imageStream = camera.previewStream .map { $0.image } for await image in imageStream { Task { @MainActor in viewfinderImage = image } } }
- Total
- Today
- Yesterday
- MainActor
- await
- java web-mvc
- In App Purchase
- jstl(java standard tag library)-core
- React
- 메이븐(maven)
- java.sql
- 스프링 시큐리티(spring security)-http basic 인증
- 제품 등록
- nl2br
- System.Diagnostics
- 스프링 프레임워크(spring framework)
- 인텔리제이(intellij)
- 상품 등록
- .submit()
- java 키워드 정리
- 스프링 프레임워크(spring framewordk)
- 진수 변환
- 람다식(lambda expression)
- 특정 문자를 기준으로 자르기
- error-java
- 스프링 시큐리티(spring security)
- 표현 언어(expression language)
- jstl(java standard tag library)
- REST API
- 문자 자르기
- system.io
- jsp 오픈 소스
- java-개발 환경 설정하기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |