UIPopOver、UITextView 和自动调整大小

Posted

技术标签:

【中文标题】UIPopOver、UITextView 和自动调整大小【英文标题】:UIPopOver, UITextView and automatic resizing 【发布时间】:2012-03-22 20:01:56 【问题描述】:

我有一个应用程序,允许用户将事件添加到列表中。我用来执行此操作的方法是通过我在UIPopOver 中向用户显示的表单。

表单具有以下组件(按此顺序,从上到下):

    事件描述标签 (UILabel) 事件描述(UITextField) 事件详细信息标签 (UILabel) 事件详情 (UITextView) 事件时间标签 (UILabel) 事件时间 (UIDatePicker) 保存事件(自定义按钮) 取消(自定义按钮)

我不想显示屏幕截图,因为它是一款敏感应用。 :-)

所以........

当我第一次显示UIPopOver 时,一切都很好。一切都如我所愿。整体布局的高度约为 650 像素,在横向模式下几乎可以占据整个屏幕(垂直)。

当用户尝试与 `UIDatePicker` 交互时,一切都很顺利(很好)。 当用户点击事件描述 (`UITextField`) 字段时,键盘出现并且 `UIPopOver` 缩小,因此基本上隐藏了 `UIDatePicker` 和按钮。我认为这没问题,因为当键盘被关闭时它们会重新出现。 我遇到的问题是当用户尝试与 `UITextView` 交互时:
    当 `UIPopOver` 的视图将其 `backgroundColor` 属性设置为 `[UIColor whiteColor]` 时,`UITextView` 最初显示为带有细黑色边框。我喜欢这个。 当用户点击 `UITextView` 开始编辑时,`UIPopOver` 会调整大小以适应键盘,并且在过渡期间,黑色边框会“缩小”并消失。尽管我设置了减震器和支柱,但所有尺寸/方向都是固定的,并且“粘”在左上角。 在此之后,当用户关闭键盘时,边框会自行恢复到之前的位置,但现在它在底部添加了一个黑色粗边框,完全遮盖了放置在 `UITextView` 和 `UIDatePicker 之间的标签`。 当我将 `UIPopOver` 视图的背景更改为“`ScrollView` Textured Background Color”时,边框“消失技巧”至少不太明显,但底部的黑色边框(键盘关闭后)仍然存在。

问题

    以前有没有人遇到过这样的事情? 有没有人认为这只是一个 IB 错误,我需要重新构建我的 XIB? 有人有其他想法吗?谷歌搜索这个问题对我来说相当空虚。如果您想出更好的条件并找到一些东西,请(轻声)告诉我。

【问题讨论】:

【参考方案1】:

男孩,我是一个愚蠢的愚蠢!原来我忘记了我将UITextView 放在UIView 内(四边插入1 个像素)并将UIView 的背景设置为黑色,这样我就可以在@ 上获得边框效果987654324@。一旦我想起这一点,设置 THAT UIView 的冲击/支柱原来是解决方案。

抱歉浪费了您的时间!

【讨论】:

以上是关于UIPopOver、UITextView 和自动调整大小的主要内容,如果未能解决你的问题,请参考以下文章

UIPopover 防止摇晃撤消

从 UIPopover 向主 UIViewController 发送代表消息

当弹出框被解除时,保持 UITextView 中的文本突出显示

UITextView 和浮动自动更正窗口的位置

使用故事板、自动布局和 Swift 的多行 UILabel 和 UITextView

自动调整包含 UITextView 的 UIView