스와이프(PanGesture)로 표준 키보드를 닫을 수 있는 TKKeyboardControl을 사용해 본 것
TKKeyboardControl이란?
키보드의 상단에서 손가락으로 맨 아래로 내려 키보드를 닫을 수 있는 기능을 쉽게 추가할 수 있는 OSS입니다.
TKKeyboardControl
자주 보이는 것은 Facebook의 Messenger나 Apple의 메세지 앱이군요.
TKKeyboardControl 을 사용하면, 그러한 메시지계의 앱을 만들 때는, 꼭 실현하고 싶은 기능의 하나인,
스와이프(PanGesture)로 표준 키보드를 닫을 수 있습니다.
쉽게 실현할 수 있습니다.
사용법
추가할 소스 코드는 단 4줄이므로 매우 쉽게 도입할 수 있습니다.
1. 소개
CocoaPods 또는 설명서에서 소개될 수 있습니다.
1-a. CocoaPods에서 소개
다음 내용으로 Podfile을 만들고 pod install합니다.
Swift에서 use_frameworks!가 없으면 오류가 발생하므로주의하십시오.
Podfile
platform :ios, '8.0'
use_frameworks!
pod 'TKKeyboardControl'
1-b. 수동으로 소개하기
아래 링크에서 소스 코드를 다운로드하고 내용의 TKKeyboardControl 디렉토리를 프로젝트에 추가하십시오.
htps : // 기주 b. 코 m/cz 타츠미-케이스케/T케 y보아 rd 콘 t로 l/아 r치ゔぇ/마s테 r. 지 p
2. 모션을 추가할 ViewController로 가져오기
모션을 추가하려는 ViewController로 아래 코드로 가져옵니다.
import TKKeyboardControl
3. PanGesture의 움직임을 키보드에 부여
ViewController의 viewDidLoad()에 아래 코드를 추가합니다.
이제 키보드를 스와이프하여 닫을 수 있습니다.
self.view.addKeyboardPanningWithFrameBasedActionHandler({ (keyboardFrameInView, opening, closing) in
// ここはPanGestureが変化するたびに呼ばれます
}, constraintBasedActionHandler: nil)
4. deinit에 Observer를 해제하는 메소드 추가
마지막으로 deinit에 아래 코드를 추가하여 완성입니다.
self.view.removeKeyboardControl()
PanGesture가 작동하는 시작점 변경
메시지 기반 앱에서 키보드 상단에는 샘플과 같은 텍스트 상자를 구현하는 것이 대부분입니다.
이 경우 keyboardTriggerOffset 속성을 설정하여 PanGesture가 작동하는 시작점을 텍스트 상자 상단에서 로 변경합니다.
// テキストボックスの高さ
let inputBaseViewHeight: CGFloat = 40
// PanGestureが効く始点をテキストボックスの上部からに設定
self.view.keyboardTriggerOffset = inputBaseViewHeight
self.view.addKeyboardPanningWithFrameBasedActionHandler({ (keyboardFrameInView, opening, closing) in
// キーボードの伸縮に合わせてテキストボックスのY座標が変化するようにする
self.inputBaseView.frame.origin.y = keyboardFrameInView.origin.y - inputBaseViewHeight
}, constraintBasedActionHandler: nil)
수동으로 키보드 닫기
수동으로 키보드를 닫으려면 다음 방법을 사용하십시오.
self.view.hideKeyboard()
Reference
이 문제에 관하여(스와이프(PanGesture)로 표준 키보드를 닫을 수 있는 TKKeyboardControl을 사용해 본 것), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/cokaholic/items/6077bccfad1297a2eea1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)