IOS (48) 썸네일형 리스트형 [Swift_Grammar] 구조체와 클래스 구조체와 클래스는 프로퍼티와 메서드를 사용하여 하나의 새로운 사용자 정의 데이터 타입을 만들어 줄수 있다. 구조체를 먼저 보자면 struct 키워드를 사용하고 새로운 타입을 생성해주는것과 같으므로 대문자 카멜케이스로 이름을 지어준다. struct Person { let name: String var age: Int } 구조체를 정의하고 초기화 할때 아래와 같이 타입과 프로퍼티 이름을 그대로 받는 기본적으로 생성되는 init이 있다. ( 멤버 와이즈 이니셜라이저 ) 또한 점문법을 사용하여 프로퍼티에 접근할 수 있다. 하지만 구조체를 let 으로 생성한 후 프로퍼티에 값을 변경하려고 하면 상수이기 때문에 컴파일 에러가 난다. let kim = Person(name: "kim", age: 2) print(ki.. [Swift_Grammar] Optional 오늘은 Optional에 대해서 포스팅 하겠다. Optional은 값이 있을 수도, 없을 수도 있음을 나타내는 표현이다. ( 없는건 nil로 표현한다. ) 변수나 상수 등에 꼭 값이 있다는 것을 보장할 수 없으며 그 값이 nil 일 수도 있다는걸 의미한다. Int 타입 변수에 값이 0, 혹은 String 타입 변수에 값이 "" (빈 문자열) 이라고 가정할때 이 상황에서 해당 변수들의 값은 없는게 아니다. 단지 0이라는 값이 들어간, 빈 문자열 이라는 값이 들어간 변수 또는 상수인것이다. 그러니 nil 이라는 값과 혼동을 해서는 안된다. let value1 = 0 let value2 = "" nil은 Optional 타입에만 할당을 할 수 있다. 일반 타입에 nil을 할당 하고자 한다면 컴파일 에러가 발생.. [SwiftUI] Text 이번 포스팅에는 SwiftUI에서 사용되는 Text에 대해서 알아보겠다. UILabel 보다 사용성이 훨씬 크고 UILabel 과 일맥상통 하다고 말하면 뭔가 이해하기 쉬울까 그전에 우리가 익숙해 있었던 UIKit와 SwiftUI 요소들의 비교를 몇개 먼저 해보자면 아래와 같다. Views and Control UILabel Text UITextField TextField UITextField의 Secure 설정 SecureField ( TF의 속성을 설정하는게 아닌 새로운 TF 생성 ) UIButton Button UIImageView Image UISwitch Toggle UISlider Slider UIStepper ( 이런게 있었네요,, ) Stepper UIPickerView Picker(Whe.. [Swift_Grammar] 함수 오늘은 함수에 대해서 간단히 알아보겠다. 함수라는건 기능을 만드는 것. 그리고 함수 하나에는 하나의 기능을 만드는 코드가 들어가야 가장 베스트이다. 기본적으로 func라는 키워드와 함수의 이름, 매개변수(Parameter), 반환타입(Return type) 등을 사용하여 함수를 정의한다. 매개변수는 소괄호로 감싸주며, ->를 사용한후 반환 타입을 명시해준다. 또한 함수 내부의 코드가 한줄인 동시에 그 결괏값이 반환타입과 일치한다면 return 키워드는 생략이 가능하다. func sayHEllo() -> String { return "Hello" } // "Hello" func sayHEllo() -> String { "Hello" } // "Hello" 이번에는 매개변수를 받는 함수를 보겠다. 두개의 I.. [SwiftUI] Hello SwiftUI SwiftUI에 대해서 공부를 시작하려고 한다. "스윗한 SwiftUI" 라는 책을 베이스로 공부하되 추가적으로 필요한 부분이 있을시 검색을 해나가면서 진행하는 방향으로 공부할 생각이다. 일단 첫 시작이니 프로젝트 생성부터 하겠다. App을 선택하고 Interface를 SwifttUI로 선택한다. 그러면 평소 기본으로 위치해있던 ViewController가 아닌 ContentView라는 이름의 swift 파일이 있을것이다. SwiftUI에서는 ViewController를 사용하지 않는다. 대신 "View 프로토콜을 준수하는 구조체를 사용해서 body라는 프로퍼티에 UI를 구성하는 코드를 작성" 하여 구현 한다고 한다. 일단 ContentView에 기본으로 작성된 코드를 보면 "Hello, world!"라.. [IOS] 키보드 내리기 with TextField SearchBar나 TextField에서 터치 입력이 발생하면 키보드가 올라온다. 이번 포스팅에서는 키보드가 올라온 후에 키보드가 아닌 다른 영역을 터치 해서 키보드를 내리거나 혹은 키보드위에 ToolBar를 올리고 키보드를 내리는 BarButton을 하나 생성하여 BarButton에 Action을 넣은후 진행하는 방법에 대해 얘기해보겠다. 일단 center에 TextField를 하나 생성하겠다. 먼저 아래와 같은 코드를 작성해주자. override func touchesBegan(_ touches: Set, with event: UIEvent?){ self.view.endEditing(true) } 이 touchesBegan 메소드의 대해 알아보자. View 또는 Window에서 하나 이상의 새로운 터.. [Swift_Grammar] 흐름 제어 (1) 코드를 실행해야 하거나 실행하지 말아야 하는 상황, 혹은 특정 명령어를 반복해서 실행해야 할때 조건문과 반복문 즉 흐름 제어를 하게 된다. 조건문은 if문 과 switch문, guard문 이 있다. if 먼저 if문은 if, else 등의 키워드로 사용할 수 있고 else if는 몇개를 사용해도 상관 없으며 else 블록은 생략해도 무방하다. 먼저 오는 조건중 어느 하나라도 충족이 되었다면 다음 조건들의 코드들은 무시한다. 또한 조건의 값은 Bool 타입이어야 한다. let lhs = 5 let rhs = 6 if lhs rhs { print("lhs의 값이 더 크다") } let value = false if value .. [IOS] UserInterfaceStyle 21.01.04 다크모드 대응 (하단 참고) - [ 수정 ] devddong.tistory.com/27?category=828276 오랜만에 개인 프로젝트 앱에 접속해 확인하던중 ( 사실 앱스토어 업로드 습작이라 기능이 볼것도 없음 ㅎ ) 유도하지 않게 다크모드에 적용된 부분을 발견했다. SearchBar와 superView의 색상이 바로 해당 부분이다. 그래서 오늘은 이부분을 수정하는 과정을 포스팅 하려한다. 아주 간단하게 해결이 가능한데 AppDelegate의 didFinishLaunchingWithOptions 메소드 내부에 아래와 같이 UserInterfaceStyle을 설정 하는 코드를 추가해준다. func application(_ application: UIApplication, didFini.. [Swift_Library] CocoaPod 설치 외부 라이브러리를 사용하기 위한 도구중 하나인 CocoaPod의 설치 방법을 포스팅 하려 한다. 터미널에서 아래와 같이 입력후 암호를 입력하면된다. sudo gem install cocoapods // 자신의 맥에 CocoaPod이 설치되어 있다면 Skip해도 된다. 설치된 CocoaPod의 버전을 확인 하려면 아래와 같이 입력을 한다. pod --version 이제 라이브러리를 추가할 프로젝트의 경로로 들어가서 pod init을 해준다. pod init 그러면 podFile이라는게 생기는데 아래와 같이 podFile을 열어서 원하는 pod의 install 명을 입렵하면 된다. # Uncomment the next line to define a global platform for your project .. [IOS] 이미지와 라벨을 같이 사용한 NavigationBarButtonItem 대부분의 앱들이 네비게이션바에 설정 버튼을 위치해두면서 자신의 프로필이나 앱의 환경설정으로 접근할 수 있게 해놓는다. 필자 또한 프로젝트중에 BarButton을 생성하여 작업하는 과정이 있었고 버튼의 이미지 옆에 text를 붙이는 과정을 포스팅으로 남기려한다. 보통은 간단하게 SystemItem으로 진행하거나, navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .search, target: self, action: #selector(didTapRightBarButton)) systemImage 로 진행 할수 있다. navigationItem.rightBarButtonItem = UIBarButtonItem(image: UII.. 이전 1 2 3 4 5 다음