Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios swift UITableView设置行宽度_Ios_Swift_Uitableview - Fatal编程技术网

Ios swift UITableView设置行宽度

Ios swift UITableView设置行宽度,ios,swift,uitableview,Ios,Swift,Uitableview,我正在尝试最小化聊天室(iOS)中表格单元格的宽度。我只是喜欢用bubble-like WhatsApp聊天来区分我们和其他人的聊天信息 使用UICollectionView,您可以在其中自定义单元格高度和宽度。行宽度始终是tableview的宽度。对于所描述的内容,您需要使用UITableView,并为用户及其朋友创建自定义单元格 如果你真的想自定义单元格的宽度,你应该考虑使用 uICLoopDebug视图>代码>虽然对于你所描述的表视图是该项工作的正确工具。 行宽度将永远等于UITababv

我正在尝试最小化聊天室(iOS)中表格单元格的宽度。我只是喜欢用bubble-like WhatsApp聊天来区分我们和其他人的聊天信息

使用UICollectionView,您可以在其中自定义单元格高度和宽度。

行宽度始终是tableview的宽度。对于所描述的内容,您需要使用
UITableView
,并为用户及其朋友创建自定义单元格


如果你真的想自定义单元格的宽度,你应该考虑使用<代码> uICLoopDebug视图>代码>虽然对于你所描述的表视图是该项工作的正确工具。

行宽度将永远等于UITababview视图的宽度。正如Blake所说,从UI(严格地)的角度来看,UICollectionView允许您同时指定宽度和高度

但它并不总是那么简单,因为UICollectionView不是“具有不同布局的UITableView”

动态大小

使用UITableView计算动态大小要容易一些,因为聊天泡泡的大小可能不同,所以通常需要它。在集合视图中,您必须有一个支持单元格,您可以手动布局该单元格,并让它为您计算大小

UITableView可以根据自动布局约束计算单元的高度

延迟加载

由于集合视图可以具有任何类型的布局,因此不需要排序。这意味着集合视图必须尝试加载传感器并预先计算其大小和位置。由于聊天历史记录可以包含许多消息,而您需要的只是垂直加载和显示它们,所以最好还是使用UITableView

解决方案:

如前所述,单元格宽度将始终相同-等于表视图的宽度。只有它的内容必须改变

  • 在单元格的内容视图内创建标签,并将其固定到单元格的所有四条边上。将行数设置为0,将换行设置为换行
  • 在它下面,创建一个表示“气泡”的视图。可以是9层图像视图,也可以是自定义视图,您可以在其中实现气泡图绘制逻辑(使用子视图或替代drawRect:进行一些自定义绘制)
  • 将气泡视图固定到标签上,使其环绕,例如(伪代码):
  • 
    var保证金=4
    bubbleView.top=label.top-页边距
    bubbleView.bottom=label.bottom+边距
    bubbleView.left=label.left-页边距
    bubbleView.right=label.right+页边距
    

  • 确保从
    tableView(tableView:heightforrowatinexpath:

  • 重要提示:您必须使用一些标签约束,使其与左/右对齐。您可以在运行时切换.Leading和.training约束。气泡/标签的大小不应该改变,只有它们的对齐方式基本上是约束常量属性值。

    即使在像WhatsApp这样的应用程序中,单元格仍然覆盖整个屏幕.只是细胞内语音气泡的大小减小了。