iOS中附件视图的动态高度

大家好! 我希望你们都做得很好,所以很长一段时间以后,我将开始写一个关于附件视图的博客。 如果您熟悉附件视图的概念,则可以跳过介绍性部分,直接跳至实现它的实际部分;如果您已经在聊天应用程序中实现过它,则可以再次进行以下操作。出来。

介绍:

我认为大家都在使用Whatsapp或Facebook Messenger等聊天应用程序。 因此,毫无疑问,您已经看到了Accessory视图,但可能不知道

如果您使用诸如Whatsapp和Facebook Messenger之类的IM应用程序,则可能已经看到了Accessory视图,尽管您可能并不知道它被称为。

因此,在大多数情况下,IM应用程序中的附件视图就是您编写消息以将其发送给您的联系人的区域。

技术观点:

将自定义视图附加到系统提供的输入视图,即键盘是附件视图。

进行聊天应用程序输入的另一种方法是将视图放置在视图控制器的底部,并将其底部约束更改为键盘的高度,这不是实现聊天UI的好方法。

让我们深入一些实用的食谱recipe

因此,众所周知,首先创建Xcode项目。 为其命名,并为其指定一个很好的Bundle标识符。 之后,使用GrowingTextView库,它将提供一些帮助来自动给出textView中文本的高度值。

 如果知道CocoaPods { 
吊舱“ GrowingTextView”
}其他{
//链接:https://cocoapods.org/
}

现在,在viewController内部插入一个tableview,如下图所示:

现在,创建一个UIView类型的新文件(.xib文件)并将其命名为ChatAccessory

并选择xib视图并转到属性检查器,并将其大小更改为自由格式,以便您可以根据需要更改其大小。

现在像在Whatsapp或Facebook中那样设计用于输入文本的视图以发送消息。 我将设计一个简单的设计,如下所示:

在ChatAccessory视图内拖动一个textview,并给它一个自定义的GrowingTextView类。

然后拖放UIButton并将约束应用于按钮,例如

尾随= 0,底部= 0,高度= 56(请勿将顶部约束应用于视图)

然后将约束应用于textview,例如前导= 16,底部= 8,顶部= 8以及尾随空格到UIButton为8

然后,我们必须通过属性检查器为textview设置最小和最大高度。

提供按钮高度= 56 =附件的最小高度

文字检视最小值 高度= 56-(textview的顶部约束+ textview的底部约束)

文字检视最小值 高度= 56-(8 + 8)= 40

最高textview 高度= 128 (根据需要)

附件视图最大 高度= textViewMaxHeight +(textview的顶部约束+ textview的底部约束)

附件视图最大 高度= 128 +(8 + 8)= 144

现在创建一个新的.swift ChatAccessory.swift和名为ChatAccessory的类,并将其扩展到UIView类,并将文件所有者类提供给ChatAccessory.xib

现在,只需在ChatAccessory类中创建textview的出口和按钮操作即可。

在上面的屏幕截图中,附件视图的高度根据文本视图中的文本动态变化。

注意:-如果您要在ChatViewController窗口上显示任何UIAlertController或任何视图,请确保先退出附件视图内textview的第一响应者

Github回购链接:-https: //github.com/SandeepSpider811/ChatAccessoryView

如果您发现本文有用的拍手并分享。

和平家伙👋