일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- uitableview
- uiscrollview
- 애니메이션
- 스위프트
- ribs
- collectionview
- map
- Xcode
- rxswift
- ios
- HIG
- MVVM
- Human interface guide
- Protocol
- Observable
- clean architecture
- 클린 코드
- tableView
- UITextView
- 리펙터링
- Refactoring
- 리팩토링
- Clean Code
- UICollectionView
- RxCocoa
- swiftUI
- swift documentation
- 리펙토링
- combine
- SWIFT
- Today
- Total
목록keyboard (6)
김종권의 iOS 앱 개발 알아가기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/tpqov/btsMa6AEKS5/BqncySyXk0QiTDyW0T7ogk/img.gif)
SwiftUI에서 키보드 높이 구하는 방법Combine을 사용하지 않으면 KeyboardInfo라는 클래스에서 기존 UIKit방식대로 NotificationCenter로 등록하는 방법이 있음public class KeyboardInfo: ObservableObject { public static var shared = KeyboardInfo() @Published public var height: CGFloat = 0 private init() { NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardChanged), name: UIApplication.keyboardWillS..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bvMMrc/btsLQ7073RG/gUfFV4YLnUzjZcqmMuKAh0/img.gif)
키보드와 스크롤 뷰스크롤 뷰 안에 있는 TextField를 탭하여 키보드가 등장할 때, 키보드와 TextField 사이의 거리 최소 32만큼 스크롤링 되는 방법?ex) 키보드와 포커싱된 TextField 사이의 거리를 최소 32로 설정한 예제구현 아이디어키보드 높이가 변하는 이벤트를 감지키보드가 등장하면 safeAreaPadding을 32로 설정, 키보드가 다시 들어가면 0으로 설정구현키보드 이벤트 감지키보드 이벤트를 감지하는 ObservableObject 성격의 클래스 구현public class KeyboardInfo: ObservableObject { public static var shared = KeyboardInfo() @Published public var height: CG..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b3bGR6/btsLTq5myMg/0rn7IPDlmujd6zh5ZDczN1/img.gif)
키보드와 safeAreaSwiftUI를 사용하면 키보드가 등장할 때 safeArea의 영역이 변경됨키보드가 올라올 때 별다른 처리가 없어도 키보드가 올라올 때 safeArea가 동적으로 키보드 위로 변하면서 같이 올라가는 것 전체 코드) struct ContentView: View { @State private var text = "" var body: some View { VStack { Spacer() Text("safeArea 예제") .padding() TextField("여기에 텍스트를 입력하세요", text: $text) .textFiel..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/drt0SN/btroSW8S0px/cZZPFy2QOpvJ7BflJL0kL0/img.gif)
기본 지식 - UIView.transition transition은 container view 관련된 곳에 애니메이션을 사용할 때 사용 키보드를 올릴 때, 그 위에있는 뷰를 UIView.transition 사용하여 올라가도록 하는데에 사용 주의) UIView.animate vs UIView.transition animate: 프로퍼티 개별적인 애니메이션 (ex- 뷰 확대, 축소, alpha값 변경) transition: 전체적인 스크린에서 동작 (뷰 이동) 구현 아이디어 뷰 정의 키보드를 감싸는 뷰, keyboardWrapperView 정의 키보드를 감싸는 뷰 위쪽 keyboardSafeAreaView 정의 auto layout으로 두 뷰의 레이아웃 정의 키보드의 높이가 변경될 때, keybaordWra..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dz3Aho/btreaQc1TFu/gTYGLKMfHeDgzmGk0HLt5K/img.gif)
keyboard 바로 위에 버튼 표출 구현 방법 TextField, TextView안에 내장된 inputAccessoryView 프로퍼티에 UIView 대입 UIView.addSubview로 Button 추가 textField나 TextView의 receiver가 becomeFirstResponse가 된 경우, 키보드가 표출할떄 키보드 위의 영역 nil이 디폴트값이고 따로 View를 추가하여 대입 필요 inputAccessoryView에 대입할 View 정의 lazy var accessoryView: UIView = { return UIView(frame: CGRect(x: 0.0, y: 0.0, width: UIScreen.main.bounds.width, height: 72.0)) }() textFi..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ohiyB/btq758LlUKJ/YKmC217WrcYDUT8tGZ9rlk/img.png)
TextFields 한 줄의 고정 높이 필드 cf) 여러 줄의 텍스트 입력이 필요한 경우 TextView 사용 모서리가 둥근 경우가 많고 사용자가 탭하면 키보드가 자동으로 표출 이메일 주소와 같은 소량 정보 요청 목적을 전달하는 데 도움이되도록 텍스트필드에 PlaceHolder 표출 사용자가 모든 내용을 지우기위해 delete탭을 계속 탭할 필요가 없도록 텍스트필드 우측에 지우기 버튼을 표출 비밀번호와 같은 민감한 데이터를 요청할 때는 secure 속성 사용 Image를 사용하여 TextField에 명확성과 기능을 제공: 일반적으로 TextField 왼쪽 끝에 field의 용도로 이미지를 나타내는 이미지 사용 키보드 iOS는 서로 다른 유형의 입력을 지원하도록 설계된 여러 가지의 키보드를 지원하므로적절..