전체 글 63

어서와 @State는 처음이지?

SwiftUI는 기본적으로 Struct 에서 VIew 프로토콜을 채택해서 만들어 집니다. 속성을 만들고 버튼을 눌렀을때 속성을 변경하려고 하면 오류가 발생합니다. 왜 그럴까요? 오류 코드를 해석해보면 속성으로 되어있는 number를 수정 할 수 없다고 나옵니다. 그렇다면 swift 문법에서 mutating을 붙이면 된다고 하는데 body에 mutating을 붙이면 될까요? 그렇게 붙여도 오류가 발생합니다. 채택된 View 프로토콜을 보면 @ViewBuilder와 @MainActor는 추후 다루는 걸로 하고 body를 보면 get ( 읽기만 가능 ) 으로 설정이 되어 있습니다. 그렇다면 속성 값을 바꾸기 위해서 어떻게 해야 할까요 ? 이때 나온것이 @State 입니다. 그렇다면 @State는 어떤 역할을 ..

Swift 2023.01.25

어서와 @FocusState는 처음이지?

번역 : Swift 값을 읽고 쓸 수 있는 프로퍼티 래퍼 유형 ! 장면 내 포커스 위치가 변경되면 UI가 업데이트됩니다. 자체 해석 : 마우스로 따로 해당 텍스트 필드를 클릭하지 않아도 자동으로 다음 순서의 텍스트 필드로 포커스 ( 텍스트 필드를 가리킴 ) 한다. TextField @State 상태 프로퍼티를 사용하여 입력되는 값을 설정해준다. struct LoginView: View { @State var emailText: String = "" @State var passwordText: String = "" var body: some View { VStack { TextField("이메일을 입력하세요", text: $emailText) .padding() .background(.thinMateria..

Swift 2022.12.27

어서와(SwiftUi) bottomSheet는 처음이지?

bottom Sheet에 대해 알아 봅시다. 만들고자 하는것 바텀시트 적용 영상에서 보셨듯이 바텀에서 뷰가 올라고오 '누르시오'버튼을 누르면 애니메이션으로 내려가는 화면을 구현하려고한다. ( 2초뒤에 다시 뷰가 보이는 것은 영상미를 위해 적용하였다) step 1. 배경색상을 설정한다. 왜 배경 색상을 설정해야 하나요?? 처음 제공되는 contentView에 바로 .sheet(ispresented ~ )를 적용하면 오류가 나기에 배경색상의 컬러를 적용해준다. BgView를 만들어준다. import SwiftUI struct BgView: View { var body: some View { Color.gray .edgesIgnoringSafeArea(.all) } } struct BgView_Previews..

Swift 2022.11.07

어서와(SwiftUi) AppStorage는 처음이지?

@AppStorage 란 무엇인가? - Swift에서는 앱을 빌드하고 실행할때 메모리에는 String과 Int형식으로 저장된다. 상태변화가 될때 사용하는 @State와 @StateObject랑 차이점은 뭔가요? A. 앱을 종료하면 메모리가 해제되고 저장되어 있던 데이터를 사라진다. @State를 활용해서 카운트 숫자 올리기 이를 방지하고 데이터를 저장하기 위해 사용되는 것이 @AppStorage 이다. 사용예시 @AppStorage("고유한 값")을 넣어주면 된다. import SwiftUI struct ContenttView: View { //앱을 껐을때도 현재 시간이 저장 될 수 있도록 @AppStorage 사용한다. @AppStorage("SavedText") var text: String = ""..

카테고리 없음 2022.11.02

이것이 취업을 위한 코딩 테스트다 스위프트 탐욕법 풀기 4

문제 : 1이 될 때 까지 import Foundation // 파라미터로 number 값 N , divide 나누는 값 K으로 설정 하고, 리턴 값으론 횟수를 나타내는 것이 숫자 이므로 Int로 설정 func solution(number: Int, divide: Int) -> Int { var count = 0 // 횟수를 저장할 수 있는 변수 생성 var objcet = number // 반복문에서 number를 활용하기 위해 object 변수 생성, number를 변수로 지정하지 않으면 파라미터는 let ( 상수 ) 이기 때문에 값을 변형 할 수 없음 while objcet != 1 { // number가 1이 아니라면 if objcet % divide == 0 { // N이 K로 나누어떨어지면 o..

카테고리 없음 2022.09.07

이것이 취업을 위한 코딩 테스트다 스위프트 탐욕법 풀기 3

import Foundation func solution(metrics: [[Int]]) -> Int { var array: [Int] = [] // 빈 배열에다가 for met in metrics { // 배열안에 있는 [원소]들이 하나씩 돌면서 met [3,1,2]이렇게 쌓임 array.append(met.min()!) // met에 [3,1,2]가 쌓이면 여기서 min()을 통해 최솟값을 추출한다 array = [ 1, ... ] // append이기 떄문에 하나씩 쌓이면서 반복문으로 계속 돌면서 최종적으로 이렇게 된다. array = [ 1,1,2] } return array.max()! // 그 후 array 배열에 들어있는 최솟값들 중 최댓값을 리턴해줍니다. } //출처: https://ios..

카테고리 없음 2022.09.07

MemoUpgrade part 6. tableview editor ( 편집 기능 )

1. Edit을 눌렀을때 버튼이 Done으로 바뀌는 코드를 작성한다. // Done 버튼 만들기 var doneButton: UIBarButtonItem? override func viewDidLoad() { super.viewDidLoad() tableView.dataSource = self tableView.delegate = self doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneButtonChange)) guard let data = UserDefaults.standard.object(forKey: "saveMemo") as? [String] else { return } memo..

카테고리 없음 2022.08.25

MemoUpgrade part 5. UserDefaults 사용해서 저장하기

UserDefaults를 사용하는 이유가 뭔가요? 여러 이유가 있겠지만 core Data를 사용하는 것보다 간단하고, 앱의 어느 곳에서나 데이터를 쉽게 읽고 저장할 수 있음 단점 : 대량의 데이터를 저장할 떄는 core Data 사용하는 것이 좋음 ex) 개인정보, 데이터 저장 등등 UserDefauls에 대해 간단히 말하지만 데이터 저장소 이다. 공식문서를 보면 정의를 보면 앱을 실행하는 동안 키 - 값 쌍을 저장하는 한다고 나온다. 즉, UserDefaults는 [ 데이터 , 키(key) ] ( 딕셔너리 ) 값으로 저장된다. UserDefaults를 설정하고 저장하는 법 저장된 UserDefaults를 실행하는 법 그럼 적용을 해보면 우리가 텍스트 필드를 통해 입력하는 곳에 UserDefaults를 ..

카테고리 없음 2022.08.25

MemoUpgrade part 4. swiping tableView 스와이핑 삭제 기능

스와이핑을 하고 클릭을 하면 콘솔 창에 메세지가 출력 되기 때문에 클로저 안에 삭제 코드를 작성하면 되겠다 액션을 누르면 콘솔에 출력된다. 해당 액션에 삭제 코드를 추가하면 된다. extension ViewController: UITableViewDelegate { func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? { let action1 = UIContextualAction(style: .normal, title: "1") { action, view, completion in print("오른쪽으로 스와이핑 됐..

카테고리 없음 2022.08.25

MemoUpgrade part 3. swiping tableView ( 스와이핑 테이블 뷰 )

UIContextualAction, UISwipeActionsConfiguration 두가지에 대해 알아보자 UITableViewDelegate에서 swipe를 입력하면 trailing 과 leading이 생깁니다. leading 은 왼쪽으로 스와이핑 했을때, trailing은 오른쪽으로 스와이핑 했을 때는 나타냅니다. UIContextualAction : 테이블 row를 swipe 했을 때 보여지는 액션을 말함. ( == 스와이핑 하는 것을 말함 ) UIContextualAction 클로저 형식으로 handler를 통해 행동을 추가 할 수 있다. 스타일을 보면 normal 과 destructive가 있지만 normal을 선택하고, 타이틀에는 표현하고자 하는 것을 적으면 된다. 클로저를 보면 UICont..

카테고리 없음 2022.08.25