InputAccessoryView
该属性分为两种用法。
- 在ViewController中使用
- 在UIView中使用
第一种情况
- 在viewDidLoad时就会触发相关事件
- 默认出现在界面底部
- 会跟随键盘
- 在present、dismiss时,这个控件会做动画上移出现、下移消失
- 必须重写canBecomeFirstResponder并返回true
第二种情况
- 只有成为firstResponder才会出现
- 同样跟随键盘
注意事项
- 使用约束时,实现高度自动变化需要重写intrinsicContentSize属性为.zero。或者同2。
- 实现高度变化,重写intrinsicContentSize属性时计算并返回正确的高度。在想要改变高度时,调用invalidateIntrinsicContentSize方法。
- 不想要present、dismiss的上移下移动画效果时,在viewDidLoad才让canBecomeFirstResponder返回true,并调用becomeFirstResponder。viewWillDisappear时移除该view上的元素,让该元素视觉上不可见。
- 想简单的实现3的效果,可以不让inputAccessoryView成为ViewController的inputAccessoryView,只放在需要该view的view上,然后在ViewController底部放置一个一模一样的view。因为键盘出现消失的时间很快,所以很难察觉有两个一样的view。