KeyboardObserver
- 授权协议: MIT
- 开发语言: Swift
- 操作系统: iOS
- 软件首页: https://github.com/morizotter/KeyboardObserver
软件介绍
KeyboardObserver 是为了处理不太复杂的键盘事件。
特性:
处理不太复杂的键盘事件。
不是使用
NSNotification,而是使用event。
区别:
不用 KeyboardObserver.swift
let keyboardNotifications = [
UIKeyboardWillShowNotification,
UIKeyboardWillHideNotification,
UIKeyboardWillChangeFrameNotification
]
override func viewDidLoad() { super.viewDidLoad()
}
override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated)
keyboardNotifications.forEach {
NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardEventNotified:", name: $0, object: nil)
}
}
override func viewWillDisappear(animated: Bool) { super.viewWillDisappear(animated)
keyboardNotifications.forEach {
NSNotificationCenter.defaultCenter().removeObserver(self, name: $0, object: nil)
}
}func keyboardEventNotified(notification: NSNotification) { guard let userInfo = notification.userInfo else { return } let keyboardFrameEnd = (userInfo[UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue() let curve = UIViewAnimationOptions(rawValue: UInt(userInfo[UIKeyboardAnimationCurveUserInfoKey] as! NSNumber)) let duration = NSTimeInterval(userInfo[UIKeyboardAnimationDurationUserInfoKey] as! NSNumber) let distance = UIScreen.mainScreen().bounds.height - keyboardFrameEnd.origin.y let bottom = distance >= bottomLayoutGuide.length ? distance : bottomLayoutGuide.length
UIView.animateWithDuration(duration, delay: 0.0, options: [curve], animations:
{ [weak self] () -> Void in
self?.textView.contentInset.bottom = bottom self?.textView.scrollIndicatorInsets.bottom = bottom
} , completion: nil)
}用 KeyboardObserver.swift
let keyboard = KeyboardObserver()override func viewDidLoad() { super.viewDidLoad()
keyboard.observe { [weak self] (event) -> Void in
guard let s = self else { return } switch event.type { case .WillShow, .WillHide, .WillChangeFrame: let distance = UIScreen.mainScreen().bounds.height - event.keyboardFrameEnd.origin.y let bottom = distance >= s.bottomLayoutGuide.length ? distance : s.bottomLayoutGuide.length
UIView.animateWithDuration(event.duration, delay: 0.0, options: [event.curve], animations:
{ [weak self] () -> Void in
self?.textView.contentInset.bottom = bottom self?.textView.scrollIndicatorInsets.bottom = bottom
} , completion: nil) default: break
}
}
}
复杂网络理论及其应用
汪小帆、李翔、陈关荣 / 清华大学出版社 / 2006 / 45.00元
国内首部复杂网络专著 【图书目录】 第1章 引论 1.1 引言 1.2 复杂网络研究简史 1.3 基本概念 1.4 本书内容简介 参考文献 第2章 网络拓扑基本模型及其性质 2.1 引言 2.2 规则网络 2.3 随机图 2.4 小世界网络模型 2.5 无标度网络模型 ......一起来看看 《复杂网络理论及其应用》 这本书的介绍吧!
随机密码生成器
多种字符组合密码
Base64 编码/解码
Base64 编码/解码
