【问题标题】:Attaching a custom alert view above the iOS keyboard在 iOS 键盘上方附加自定义警报视图
【发布时间】:2015-02-18 01:35:28
【问题描述】:

我正在尝试设计(“正确设计”,而不是“破解”)自定义警报视图。视图应该附加到键盘的顶部;使用键盘向上滑动(如果有警报)或隐藏(如果没有警报)。

视图应该始终“粘”在键盘上……包括,例如,当键盘隐藏时。在这种情况下,视图应该与键盘一起向下滑动,看不见。

以下是我尝试实现的示例(带有主动警报):

我原本想过子类化 UIAlertView,但看起来不推荐。而且,经过一番试验,这显然是一项棘手的任务。我有一个显示的警报,但是,它变成了与键盘保持同步的问题,而且我还没有找到一种方法让它“跟踪”键盘的运动......不顺利。

有什么想法吗?

【问题讨论】:

  • 我最近经历了类似的事情......我的解决方案是使用一个简单的 UIView(用于警报)并注册 UIKeyboardWillHideNotificationUIKeyboardWillShowNotification,其中 UIView(用于警报)是向上/向下滑动(帧的原点变化),动画与键盘运动相关联。你试过类似的东西吗?通知为您提供所需的一切(键盘高度、动画持续时间等)
  • 设置为附件视图。
  • 大卫,是的——我正在做类似的事情,但今天早些时候偶然发现了 inputAccessoryView。我实际上已经实现了一个基本的 UIView 基本上做了你所描述的......但有小故障。 inputAccessoryView 效果很好,iOS 处理了大部分(全部?)动画。几乎我只需要注意绘制一个带有警报的矩形,或者隐藏它(视情况而定)。
  • @Zac:我不知道accessoryView,我也试试,谢谢!

标签: ios swift uikit uialertview


【解决方案1】:

您可以使用inputAccessoryView 中的UITextFieldUITextView 来实现此目的。有关详细信息,请参阅 Apple 的“iOS 文本编程指南”中的 Custom Views for Data Input 章节。

例如,可以在键盘上方添加一个非常简单的红色条,使用以下代码:

let keyboardAlertView = UIView(frame:CGRectMake(0,0,320,44))
keyboardAlertView.backgroundColor = UIColor.redColor()
textField.inputAccessoryView = keyboardAlertView

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-20
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    • 2012-09-12
    相关资源
    最近更新 更多