텍스트 필드에 키보드가 묻지 않도록 (다양한 버전) swift3
github URL → htps : // 기주 b. 코 m/사치코-카메/수 ft. mp19
그건 그렇고, 프로젝트는 집에 종류를 씁니다.
천이처로 클래스 나누어서 쓰고 있습니다.
이것을 만들기에 있어서 참고로 한 URL입니다. 이 클래스는 어디의 url을 참고로 한지도 위에 써 있습니다.
쓰는 만큼 스크롤하여 조정 참고 가장 추천, 덧붙여서 이것이 상당히 많았던 인상 받았습니다.
ぃ tp // 코 m / 고바보 y / ms / d56086b92f84c586562d
애니메이션 붙여 view의 축소에서의 조정의 참고
htp : //는 ck에서. jp/아 r ゔぇ s/7958/
제약을 사용한 조정 참고
h tp // 코 m / s 마 rtp
AutoLayout 참고
htp : // bg.ぺr 소나 l 푸 c와 ry. 코 m/2016/01/11/마케-아우토-아요 tゔぃ아코로/
탭으로 키보드 닫기 참고
htps : ///-아-p- c. 코 m / 이오 s / 우이게 s 트레코 g에 꼭 r. HTML
역시 제일 좋아하는 클래스만 코드 올려 둡니다! !
pattern2ViewController.swift
//参考URL http://qiita.com/kobaboy/items/d56086b92f84c586562d
class pattern2ViewController: UIViewController ,UITextFieldDelegate, UIScrollViewDelegate {
var txtActiveField = UITextField()
var scrollFormer:CGFloat! = nil
let scrollViewsample = UIScrollView()
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.blue
let mainViewFrame = UIScreen.main.bounds
scrollViewsample.frame = mainViewFrame
scrollViewsample.contentSize = CGSize(width:mainViewFrame.size.width , height:mainViewFrame.height + 150)
let sampletextFile = UITextField()
sampletextFile.delegate = self
sampletextFile.text = "パターン2"
sampletextFile.borderStyle = UITextBorderStyle.roundedRect
sampletextFile.frame.size.width = mainViewFrame.size.width/2
let rec = CGRect(x: mainViewFrame.midX - sampletextFile.frame.size.width/2, y: 500, width:mainViewFrame.size.width/2 , height: 40.0)
sampletextFile.frame = rec
self.view.addSubview(scrollViewsample)
scrollViewsample.addSubview(sampletextFile)
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let notificationCenter = NotificationCenter.default
notificationCenter.addObserver(self, selector: #selector(pattern2ViewController.handleKeyboardWillShowNotification(_:)), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
notificationCenter.addObserver(self, selector: #selector(pattern2ViewController.handleKeyboardWillHideNotification(_:)), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
//UITextFieldが編集された直後に呼ばれる.
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
//編集されたテキストフィールドを格納しておく
txtActiveField = textField
return true
}
func handleKeyboardWillShowNotification(_ notification: Notification) {
let userInfo = notification.userInfo!
//キーボードの大きさ調べる
let keyboardScreenEndFrame = (userInfo[UIKeyboardFrameEndUserInfoKey] as! NSValue).cgRectValue
let myBoundSize: CGSize = UIScreen.main.bounds.size
let scrollvalue = scrollViewsample.contentOffset.y
scrollFormer = scrollViewsample.contentOffset.y
//入力したテキストフィールドのy軸と高さと少し余白を足してテキストフィールドのマックスy値と少し余白のy軸をとる
let txtLimit = txtActiveField.frame.maxY + 8.0
let txtLimit1 = txtActiveField.frame.maxY + 8.0 - scrollvalue
//現在のselfViewの高さから、キーボードの高さを引いて残りの幅の高さをみるy軸をみる
let kbdLimit = myBoundSize.height - keyboardScreenEndFrame.size.height
print("テキストフィールドの下辺:(\(txtLimit))")
print("キーボードの上辺:(\(kbdLimit))")
//キーボードよりテキストフィールドのy軸が大きかったらキーボードにかかっている状態。スクロールビューをその分移動させる。
if txtLimit1 >= kbdLimit {
scrollViewsample.contentOffset.y = txtLimit - kbdLimit
}
}
func handleKeyboardWillHideNotification(_ notification: Notification) {
//スクロールしてある位置に戻す
scrollViewsample.contentOffset.y = scrollFormer
}
}
Reference
이 문제에 관하여(텍스트 필드에 키보드가 묻지 않도록 (다양한 버전) swift3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sachiko-kame/items/f629e09d2db725248c13텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)