Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.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
JSQMessageViewController自定义单元格自动布局问题-IOS_Ios_Ios Autolayout_Jsqmessagesviewcontroller - Fatal编程技术网

JSQMessageViewController自定义单元格自动布局问题-IOS

JSQMessageViewController自定义单元格自动布局问题-IOS,ios,ios-autolayout,jsqmessagesviewcontroller,Ios,Ios Autolayout,Jsqmessagesviewcontroller,我正在使用JSQMessagesViewController,并根据这个答案创建了一个自定义单元格。 现在,我正在努力正确设置自动布局约束。因此,消息气泡无法正确显示。请帮助我正确设置约束 所以让我们来尝试一下。所以,我要做的第一件事是设置一个约束,使第一个按钮与另一个按钮的高度相等。你可以通过两种方式完成,但为了简洁起见,我这里只介绍一种。您可以按住计算机上的控件按钮,选择按钮1,然后拖动到按钮2。这将为您提供两个如下所示的选项。 您希望选择“等高”,这样两个按钮的高度都相同。然后你会

我正在使用JSQMessagesViewController,并根据这个答案创建了一个自定义单元格。

现在,我正在努力正确设置自动布局约束。因此,消息气泡无法正确显示。请帮助我正确设置约束


所以让我们来尝试一下。所以,我要做的第一件事是设置一个约束,使第一个按钮与另一个按钮的高度相等。你可以通过两种方式完成,但为了简洁起见,我这里只介绍一种。您可以按住计算机上的
控件
按钮,选择
按钮1
,然后拖动到
按钮2
。这将为您提供两个如下所示的选项。

您希望选择“等高”,这样两个按钮的高度都相同。然后你会想要给它一个高度。再次按住键盘上的
控件
按钮,但这次单击
按钮1
拖动并在
按钮1
内释放。你应该做一些类似的事情

如果未获得所需的选项,请尝试沿对角线方向拖动。Xcode将根据拖动的方向猜测您需要什么约束。也就是说,如果垂直拖动,则应获得
高度
选项

然后,您可以转到右侧的属性检查器,并为您想要的高度设置一个数字。文本通常在12分左右,所以我会选择30分或更高的按钮高度。然后为它们之间的间距以及包含它们的视图的前导和尾随添加约束,或者可以为它们指定标准宽度并使其在视图中居中。哪一个最适合你

编辑:

还应调整气泡大小计算。 可以在JSQMessagesBubblesSizeCalculator类中找到它。 例如:在教室里

 - (CGSize)messageBubbleSizeForMessageData {
 if([messageData isOptionMessage]){ 
  // add button height also (In this case i have set constant 200. But we have to calculate the actual button heights instead) 
     finalSize = CGSizeMake(finalWidth, stringSize.height + verticalInsets + 200)
  } else { 
       finalSize = CGSizeMake(finalWidth, stringSize.height + verticalInsets)
  }
}

如果你需要更多的帮助,请告诉我,并继续做好工作。嘿,我回答了那个问题。让我看看能不能帮上忙。你介意以约束的方式分享你目前所拥有的吗?或者甚至分享你的代码。我可以看一看,然后发给你正确的答案direction@DanielLeonard非常感谢你的详细回答。我已经按你说的做了。但我在设置textview和bubble容器视图的约束方面仍然存在问题。我可以和你分享我的代码。我怎样才能分享它?另外,请参见我设置包含后的屏幕截图,正如您所说的那样,Withub是最简单的。@Daniellonard Github repo:请参阅JSQMessagesCollectionViewCellIncoming.xib非常感谢您的帮助。我解决了我的问题。这不是自动布局。我可以在这个类JSQMessagesBubblesSizeCalculator中修改消息气泡的高度。太棒了,我很高兴你能找到它,我很乐意将它添加到答案中。你介意分享修复它的代码吗?我会将它添加到答案中。但是做得很好。在xib中设置约束后,您需要根据内容调整气泡高度,例如:按钮。在JSQMessagesBubblesSizeCalculator类中,有一种基于textView高度计算气泡高度的方法。我们还需要将按钮高度添加到计算中。例如:在-(CGSize)messageBubbleSizeForMessageData方法中,我们可以设置如下内容。如果([messageData isOptionMessage]){//add button height(在本例中,我设置了常数200。但我们必须计算实际的按钮高度)finalSize=CGSizeMake(finalWidth,stringSize.height+verticalInsets+200);}否则{finalSize=CGSizeMake(最终宽度,stringSize.height+垂直集);}