스와이프(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()

좋은 웹페이지 즐겨찾기