UNKO.fun

Blog Post

InputAccessoryView

November 24, 2018 | 3 min

iOS

Post content

InputAccessoryView

该属性分为两种用法。

  1. 在ViewController中使用
  2. 在UIView中使用

第一种情况

  1. 在viewDidLoad时就会触发相关事件
  2. 默认出现在界面底部
  3. 会跟随键盘
  4. 在present、dismiss时,这个控件会做动画上移出现、下移消失
  5. 必须重写canBecomeFirstResponder并返回true

第二种情况

  1. 只有成为firstResponder才会出现
  2. 同样跟随键盘

注意事项

  1. 使用约束时,实现高度自动变化需要重写intrinsicContentSize属性为.zero。或者同2。
  2. 实现高度变化,重写intrinsicContentSize属性时计算并返回正确的高度。在想要改变高度时,调用invalidateIntrinsicContentSize方法。
  3. 不想要present、dismiss的上移下移动画效果时,在viewDidLoad才让canBecomeFirstResponder返回true,并调用becomeFirstResponder。viewWillDisappear时移除该view上的元素,让该元素视觉上不可见。
  4. 想简单的实现3的效果,可以不让inputAccessoryView成为ViewController的inputAccessoryView,只放在需要该view的view上,然后在ViewController底部放置一个一模一样的view。因为键盘出现消失的时间很快,所以很难察觉有两个一样的view。