私の目標は、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 を介して使用できる何かを提案していただければ幸いです。
次のようにしたい: ナレーション メッセージ