我的目标是进行一次"旁白" JSQMessagesViewController中的消息。我希望此消息以屏幕为中心。我试图通过集中它的消息气泡容器(包含气泡和文本)来使消息居中。这是我的代码:
class MessagesViewController: JSQMessagesViewController
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = super.collectionView(collectionView, cellForItemAtIndexPath: indexPath) as! JSQMessagesCollectionViewCell
let message = messages[indexPath.row]
// Sent message
if message.senderId() == self.senderId {
// Normal outgoing message
}
// Narration Message
else if message.senderId() == Constants.lbSenderName {
cell.textView?.textAlignment = NSTextAlignment.Center
// new frame -- isn't changing the frame.
let newX = (cell.frame.width - (cell.messageBubbleContainerView?.frame.width)!)/2.0
cell.messageBubbleContainerView?.frame = CGRectMake(
newX,
(cell.messageBubbleContainerView?.frame.minY)!,
(cell.messageBubbleContainerView?.frame.width)!,
(cell.messageBubbleContainerView?.frame.height)!
)
}
// Received message
else {
// Normal incoming message
}
return cell
}
}
细胞完全没有像我期望的那样移动。我尝试过使用
cell.messageBubbleContainerView?.translatesAutoresizingMaskIntoConstraints = true
但它会使气泡消失。任何建议都值得赞赏,要么像我一样手动改变布局,要么通过JSQMessagesViewController可以使用。
我希望它看起来像这样: Narration Messages
答案 0 :(得分:1)
库目前不支持此功能。您上面的代码不会改变任何内容,因为这些更改会立即被库覆盖。
目前唯一想实现此目的的是提供自己的单元子类。您可以使用集合视图注册单元格,然后设置incoming
和outgoing
单元标识符属性。
相关文档:http://cocoadocs.org/docsets/JSQMessagesViewController/7.2.0/Classes/JSQMessagesViewController.html