**226 [UIkit] Navigation Bar (storyboard) Navigation Controller 추가하면 됨 Xcode 상단 Editor에서 Navigation Controller 추가하거나, Xcode 하단에서 추가하기 segue 추가해주면 navigariton controller 추가 완료 Kind에서 옆으로 넘어가는 형식이나, 모달로 올리는 형식을 설정할 수 있음 네비게이션바쪽의 빈 공간을 클릭해서 title 설정 가능 navigation controller에서 background, 글자 크기 등 설정가능 2023. 12. 1. [Xcode] Tuist 적용 연습 1. 설치 > curl -Ls https://install.tuist.io | bash 성공화면 2. 프로젝트 생성, 실행 > mkdir TuistTest > cd TuistTest > tuist init --platform ios //UIkit //tuist init --platform ios --template swiftui // SwiftUI 성공화면 잘 된것! 3. manifast 설정 > tuist edit 해줬는데 오류뜸 ㅜ Couldn't find Xcode's Info.plist at /Library/Contents/Info.plist. Make sure your Xcode installation is selected by running: sudo xcode-select -s /Applic.. 2023. 11. 24. [Xcode] Tuist 개념들 Tuist란? Tuist는 Xcode 프로젝트를 Swift로 생성/관리할 수 있도록 도와주는 도구 Tuist의 장점 깃으로 프로젝트 형상관리를 하다보면 project파일의 conflict로 시간을 허비할때가 많다. 하지만 Tuist를 사용하게 되면 프로젝트 파일을 자동으로 생성해 주기 때문에 프로젝트를 더 생산성 높게 관리할 수 있다. 성능개선으로 외 모듈 간 의존관계조정 이 쉬워지며 static framework로 성능개선효과, dynamic link, launch time 감소하며, cachingd의 모듈을 pre-build하게 되며 변경된 부분민 빌드하면 되기 때문에 빌드시간을 감소시킬 수 있다. 1. xcodeproj 파일 충돌 회피 2. 모듈화 편리 3. 모듈 의존관계 파악 4. 스위프트 언어를.. 2023. 11. 22. [UIkit] selector, 함수 전달할 때 @objc를 붙이는 이유 selector: 셀렉터 objective-c에서 이름을 참조하는 타입이며, swift에서는 objective-c의 selector를 selector 구조체로 나타낸다. @objc는 왜 사용하나? swift 코드에 붙여주면 objective-c에서 그 코드를 인식할 수 있도록 해줌 (그냥 사용하면 인식 불가) 보통 다음과 같이 addTarget을 쓸 때 selector, @objc를 사용한다. private lazy var button2: UIButton = { let button = UIButton() button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside) return button } @objc func buttonTap.. 2023. 11. 20. [UIkit] 애니메이션 추가 런루프는 1초에 60번 화면을 그리게 되는데, func에 layoutIfNeeded()를 추가해주면 지금 바로 화면을 그려줌 UIView.animate(withDuration: 0.3) { self.view.layoutIfNeeded() } 2023. 11. 20. [UIkit] 'self' refers to the method 'ViewController.self', which may be unexpected (self 사용 시점) textField 정의하며 addTarget설정 후 타겟의 인자로 self를 넘겨줬는데 private let nameTextField: UITextField = { var tf = UITextField() ... tf.addTarget(self, action: #selector(textFieldEditingChanged(_:)), for: .editingChanged) return tf }() 아래와 같은 경고가 떴다. (스위프트 5.6부터 뜬다고함 !) 여튼 제대로 된 사용이 아닐 수 있다며 경고 다른 블로그 참고해보니까 self의 사용시점은 슈퍼의 속성과 인스턴스가 초기화 된 후부터 가능 init() { super.init() ///self 사용시점 } let으로 선언하게 되면 인스턴스 초기화 전에 .. 2023. 11. 20. 이전 1 2 3 4 5 6 7 8 ··· 38 다음