#ios #objective-c #jsqmessagesviewcontroller
#iOS #objective-c #jsqmessagesviewcontroller
Вопрос:
Я использую JSQMessagesViewController для своего приложения для чата. Я хотел бы получить представление о каждом из них messageBubbleImageView
.
Я понимаю, что ячейки, включающие в себя, messageBubbleImageView
создаются в JSQMessagesViewController.m
, и я могу видеть прямоугольник cell.textView.frame
и cell.mediaView.frame
с помощью NSLog, но я не знаю, как получить прямоугольник @interface ViewController : JSQMessagesViewController
из JSQMessagesViewController.m
.
Я был бы очень признателен, если кто-нибудь сможет мне помочь в этом отношении.
Ответ №1:
JSQMessagesViewController имеет свойство CollectionView. UICollectionView имеет свойство, называемое visibleCells https://developer.apple.com/reference/uikit/uicollectionview/1618056-visiblecells
Фреймы будут только у видимых ячеек, потому что макет выполняется лениво (на самом деле это своего рода изменения в iOS 10 в качестве оптимизации производительности, но я не думаю, что вам нужно беспокоиться об этом, но если вы посмотрите это:https://developer.apple.com/videos/play/wwdc2016/219 /)
for cell in collectionView.visibleCells {
print (cell.frame)
}
Комментарии:
1. В JSQMessagesViewController. могу Ли я получать фреймы в рамках этого процесса «- (UICollectionViewCell *)CollectionView: (JSQMessagesCollectionView *)CollectionView cellForItemAtIndexPath: (NSIndexPath *)indexPath». Однако я не знаю, как получить фреймы в ViewController.m, которые я создал и где отображается фактический вид чата. Как я могу получить информацию о ячейке в этом ViewController?
2. О, теперь я понял, что ты сказал. Я могу достать рамки. Спасибо!