The changelog for MessageKit
. Also see the releases on GitHub.
- Update InputBarAccessoryView to fix some crashes and issues by @kaspik
- Fix Advanced example hiding indicator #1792 by @kaspik
- Fix hiding typing indicator crash #1804 by @Zandor300
- Update Github Actions and bump dependencies by @kaspik
- Swiftformat and Swiftlint SwiftPM plugins used for linting and formatting the codebase #1729 by @martinpucik
- Fixed iOS 13 deprecation warnings #1730 by @kaspik
- SwiftPM plugins setup #1732 by @martinpucik
- Updated InputBarAccessoryView to v6.1.1 by @kaspik
Version 4.0.0 comes with couple of breaking changes, please refer to MIGRATION_GUIDE.md for easy transition from V3 to V4.
- New method in
MessagesLayoutDelegate
for setting message avatar size ddfc814 by @martinpucik MessageInputBarKind
enum for customizingmessageInputBar
insideinputContainerView
#1707 by @martinpucik
- Breaking change: Dropped CocoaPods support
- Breaking change: Dropped support for iOS 12 2bd234b by @martinpucik
- Breaking change: Moved messageInputBar from inputAccessoryView to a subview in MessagesViewController #1704 by @martinpucik
- Breaking change: Renamed
func currentSender() -> SenderType
tovar currentSender: SenderType
#1714 by @martinpucik - Deprecation: Deprecated
maintainPositionOnKeyboardFrameChangedMoved
in favor ofmaintainPositionOnInputBarHeightChanged
which better describes the intended use of this property #1704 by @martinpucik - Breaking change: Added an argument to
messageContainerMaxWidth
cd4f75b by @martinpuciknow has IndexPath argumentMessageSizeCalculator.messageContainerMaxWidth(for message: MessageType) -> CGFloat
MessageSizeCalculator.messageContainerMaxWidth(for message: MessageType, at indexPath: IndexPath) -> CGFloat
- Breaking change: Added an argument to
messageContainerSize
cd4f75b by @martinpuciknow has IndexPath argumentMessageSizeCalculator.messageContainerSize(for message: MessageType) -> CGSize
MessageSizeCalculator.messageContainerSize(for message: MessageType, at indexPath: IndexPath) -> CGSize
- Updated InputBarAccessoryView to v6.1.0 #1716 by @martinpucik
- Observe inputBar frame change to update collectionView bottom inset instead of keyboard show/hide notifications #1726 by @martinpucik
- Fixed iOS 13 deprecation warnings #1715 by @kaspik
- Updating bottom chat collectionView inset after InputBar container view frame change #1725 by @martinpucik
- NSConstraintLayoutSet.swift #1700 by @martinpucik
- Deprecated
Sender
struct. Clients should useSenderType
protocol #1713 by @martinpucik - Unavailable
MessageInputBar
andMessageInputBarDelegate
. Clients should useInputBarAccessoryView
andInputBarAccessoryViewDelegate
#1713 by @martinpucik func scrollToBottom(animated:)
onMessagesCollectionView
. Clients should usefunc scrollToLastItem(:)
#1713 by @martinpucik
- New methods in
MessagesLayoutDelegate
for adjusting alignment of message top and bottom labels #1671 by @martinpucik
- Not used workspace files in example project #1671 by @martinpucik
- Updated InputBarAccessoryView to 5.4.0 with XCode 13 support
- Fixed Example project loading MessageKit through SPM
- Make sure MessageKit works on XCode 13 correctly
- Added enough data source and delegate methods to display customized
UICollectionViewCell
for MessageTypes other than.custom
in #1577 by @jvigneshcs
-
Fixes an issue with Scroll problem on new messages with keyboard open #1529 by @politan8
-
Fixes time stamp vertical alignment so labels align with messages when showMessageTimestampOnSwipeLeft is true. by @kurtsequoia
-
Breaking Change Changed
MessagesLayoutDelegate
's method for typing indicator size. Typing indicator's size is now correctly calculated based on delegate methodfunc typingIndicatorViewSize(for layout: MessagesCollectionViewFlowLayout) -> CGSize
#1563 by @kaspik
- Bump
InputBarAccessoryView
- maintainPositionOnKeyboardFrameChanged for small contentSize would scroll content out of bounds #1506 by @martinpucik
- Changed
resources
toresource_bundle
in MessageKit.podspec #1460 by @martinpucik - Changed dependency manager for Example project to SPM #1504 by @martinpucik
- Deprecated
messagesCollectionView.scrollToBottom
andscrollsToBottomOnKeyboardBeginsEditing
in favor ofmessagesCollectionView.scrollToLastItem
andscrollsToLastItemOnKeyboardBeginsEditing
. This will be removed in a future release #1505 by @martinpucik
- Updated
InputBarAccessoryView
to 5.2.1 with fixed warning on XCode 12 when used via SPM
-
Fixes an issue with casting MessageType to a custom type when using LinkPreview cells #1469 by @kinoroy
-
Fixes an issue where the MessagesViewController keyboard observers were not cleaned up when MessagesViewController was no longer visible on screen #1476 by @kinoroy
- Breaking Change Dropped support for iOS 11, added support for Swift 5.3 SPM and XCode 12 #1464 by @kaspik
- Fixes missing insets for link preview messages #1447 by @bguidolim
- Show message time by swiping left over the chat controller. #1444 by @amirpirzad
- Fixes an incorrect animation of message cells while dragging to dismiss the keyboard #1433 by @lhr000lhrmega
- Fixes an issue where the video message playback icon was too dark when in dark mode #1386 by @kinoroy
- Fixes an issue where the video message playback button triangle was not centered within the circle #1386 by @kinoroy
- Added option to use Photo messages with remote image URL in Example project #1294 by @martinpucik
- Breaking Change Added new
linkPreview
message type, which display a subclass ofTextMessageCell
with support to present title, teaser and a thumbnail image for a link #1310 by @bguidolim - Added a SwiftUI view using MessageKit in the Example Project by #1410 @kinoroy
- Breaking Change Dropped support for iOS 9 and iOS 10 #1261 by @kaspik
- Converted internal, static colors into color assets to better support dark and high contrast modes #1386 by @kinoroy
- Change the video message playback button to use a UIVisualEffectsView to better match the look and feel of iMessage. #1386 by @kinoroy
-
Set the proper notification to invalidate layout. MessageKit now relies on
UIApplication
orientation notification instead ofUIDevice
, which invalidates the layout only when it is needed. #1126 by @bguidolim -
Fixed
requiredInitialScrollViewBottomInset
wheninputAccessoryView
isnil
#1218 by @aabosh -
Fixed
MessagesCollectionView.scrollToBottom(animated:)
method to properly handle calls made early in the view lifecycle. #1110 by @marcetcheverry -
Fixed
TypingIndicator
dotColor
for light mode. #1266 by @lewis-smith
-
Add missing textAlignment and textInsets assignments to layoutCellTopLabel method in MessageContentCell. #1117 by @mdescalzo
-
Add support for styling NSLinkAttribute with existing urlAttributes in MessageLabel. #1091 by @marcetcheverry
-
Add loading indicator to AudioMessageCell. #1084 by @marcetcheverry
-
Add support for
scrollToLastItem
andscrollsToLastItemOnKeyboardBeginsEditing
#1247 by @hyouuu -
Added
MessageCellDelegate.didTapImage(in cell: MessageCollectionViewCell)
#1166 by @domeniconicoli, #1278 by @bguidolim, 1285 by @austinwright -
Added missing cellTopLabelAlignment to MessageSizeCalculator. #1113 by @marcetcheverry
-
Breaking Change Updated to Swift 5.0 #1039 by @nathantannar4
-
Lazily initialize the MessageInputBar on MessagesViewController. #1092 by @marcetcheverry
- Deprecated
SenderType.id
in favor ofSenderType.senderId
. This change was previously meant for 3.0.0. #1201 by @kinoroy
- Breaking Change
MessageInputBar
, andMessageInputBarDelegate
have been obsoleted. UseInputBarAccessoryView
andInputBarAccessoryViewDelegate
respectively. This change was previously meant for 3.0.0. #1201 by @kinoroy
- Breaking Change The dependency
MessageInputBar
was replaced withInputBarAccessoryView
. AsMessageInputBar
was previously a fork this means no functionality has been lost but improvements and bug fixes will be present.InputBarAccessoryView
has more of a following outside ofMessageKit
making its development faster thanMessageInputBar
. Maintaining two versions only increased the workload. You can find the changelog forInputBarAccessoryView
here.
-
Breaking Change Deprecated the Sender struct in favor of the
SenderType
protocol. #909 by @nathantannar4 -
Breaking Change Deprecated the Sender struct in favor of the
SenderType
protocol. #909 by @nathantannar4 -
Breaking Change Add support for audio messages. Added new protocols
AudioControllerDelegate
,AudioItem
a new cellAudioMessageCell
and a new controllerBasicAudioController
. #892 by @moldovaniosif. -
Breaking Change Moved
handleTapGesture
method toMessageCollectionViewCell
#950 by @nathantannar4 -
Breaking Change Renamed function
layoutBottomLabel(with:)
tolayoutMessageBottomLabel(with:)
inMessageContentCell
class. #920 by @maxxx777
-
Breaking Change Add support for share contact. #1013 by @moldovaniosif
-
Added typing indicator support,
func setTypingIndicatorViewHidden(_ isHidden: Bool, animated: Bool, whilePerforming updates: (() -> Void)? = nil, completion: ((Bool) -> Void)? = nil)
. Return a custom typing view by conforming toMessagesDisplayDelegate
or use the default appearance. Customize the size withMessagesLayoutDelegate
. #989 by @nathantannar4 -
Added
incomingAccessoryViewPosition
andoutgoingAccessoryViewPosition
variables toMessageSizeCalculator
class. #989 by @subdiox -
Added
setMessageIncomingAccessoryViewPosition(_:)
andsetMessageOutgoingAccessoryViewPosition(_:)
functions toMessagesCollectionViewFlowLayout
class. #989 by @subdiox -
Breaking Change Added
avatarLeadingTrailingPadding
as a property ofCellSizeCalculator
andMessagesCollectionViewLayoutAttributes
to inset theAvatarView
layout #944 by @nathantannar4 -
Breaking Change Added
didTapBackground(in:)
function toMessageCellDelegate
protocol. #922 by @kpennacchia -
Breaking Change Added
didTapCellBottomLabel(in:)
function toMessageCellDelegate
protocol. #920 by @maxxx777 -
Breaking Change Added
cellBottomLabelAttributedText(for:, at:)
function toMessagesDataSource
protocol. #920 by @maxxx777 -
Breaking Change Added
cellBottomLabelHeight(for:, at:, in messagesCollectionView:)
function toMessagesLayoutDelegate
protocol. #920 by @maxxx777 -
Added
cellBottomLabel
toMessageContentCell
. #920 by @maxxx777 -
Added
layoutCellBottomLabel(with:)
function toMessageContentCell
class. #920 by @maxxx777 -
Added
setMessageIncomingCellBottomLabelAlignment(_:)
andsetMessageOutgoingCellBottomLabelAlignment(_:)
functions toMessagesCollectionViewFlowLayout
class. #920 by @maxxx777 -
Added
cellBottomLabelAlignment
andcellBottomLabelSize
variables toMessagesCollectionViewLayoutAttributes
class. #920 by @maxxx777 -
Added
incomingCellBottomLabelAlignment
andoutgoingCellBottomLabelAlignment
variables toMessageSizeCalculator
class. #920 by @maxxx777 -
Added
cellBottomLabelSize(for:, at:)
andcellBottomLabelAlignment(for:)
functions toMessageSizeCalculator
class. #920 by @maxxx777
- Breaking Change Added new methods to simplify using of custom messages:
customCellSizeCalculator(for:at:in:)
forMessagesLayoutDelegate
andcustomCell(for:at:in:)
forMessagesDataSource
. #879 by @realbonus
- Change acl of
handleGesture(touchLocation:)
inMessageLabel
from internal to open. #912 by @julienkode
-
Breaking Change Updated codebase to Swift 4.2 #883 by @nathantannar4
-
Fixed the way that the Strings and UIImages are parsed in the
InputTextView
to prevent crashes inparseForComponents()
. #791 by @nathantannar4
-
Breaking Change Added
.hashtag
, .mention
to detect theses pattern inside themessageLabel
. We also add.custom(pattern: YOUR_PATTERN)
toDetectorType
to manage and deal with your own regular expression. #913 by @JulienKode. -
Added support for detection and handling of
NSLink
s inside of messages. #815 by @jnic -
Added customizable
accessoryView
, with a newMessagesDisplayDelegate
functionconfigureAccessoryView
, and corresponding size & padding properties inMessageSizeCalculator
. TheaccessoryView
is aligned to the center of themessageContainerView
. #710 by @hyouuu -
Added a tap gesture recognition to the
accessoryView
which calls theMessageCellDelegate
functiondidTapAccessoryView(in:)
. #834 by @nathantannar4 -
Added
additionalBottomInset
property that allows to adjust the bottom content inset automatically set on the messages collection view by the view controller. #787 by @andreyvit
-
Breaking Change Fixed typo of
scrollsToBottomOnKeyboardBeginsEditing
toscrollsToBottomOnKeyboardBeginsEditing
. #856 by @p-petrenko -
Fixed a bug that prevented
MessageLabel
from laying out properly when contained by superviews using autolayout. #889 by @marius-serban. -
Fixed bottom content inset adjustment when using an undocked keyboard on iPad, or when
edgesForExtendedLayout
does not include.top
, or when a parent container view controller adds extra views at the top of the screen. #787 by @andreyvit -
Fixed the
MessageData.emoji
case to use 2x themessageLabelFont
size by default. #795 by @Vortec4800.
-
Fixed
MessagesCollectionView
to allow to use nibs withMessageReusableView
. #832 by @maxxx777. -
Fixed multiple crashes at views, when views are being called from another XIB. #905 by @talanov.
- First major release.
-
Fixed
MessageContentCell
's subviewsframe
when size equal to.zero
. #716 by @zhongwuzw. -
Fixed
MessagesCollectionView
's bottom inset when hardware keyboard is connected. Do not adjustMessagesCollection
's inset when being popped. #707 by @zhongwuzw. -
Fixed
LabelAlignment
initializer which has default internal access control. #705 by @zhongwuzw.
- Added convenience method to set properties for all
MessageSizeCalculator
s. #697 by @zhongwuzw.
-
Breaking Change Added new
MessagesDataSource
delegate methods,numberOfSections(in)
andnumberOfItems(inSection:in)
. #601 by @SD10, @zhongwuzw. -
Breaking Change Added new protocol
MediaItem
as the associated value for theMessageData.video
andMessageData.photo
cases. #587 by @SD10. -
Breaking Change Added new protocol
LocationItem
as the associated value for theMessageData.location
case. #587 by @SD10. -
Breaking Change Added new
DetectorType
called.transitInformation
to message label. #520 by @nosarj. -
Breaking Change Added
.custom(Any?)
case toMessageData
. #498 by @SD10. -
Breaking Change Added
.messageLabelTop
case toAvatarPosition.Vertical
enum. #596 by @zhongwuzw -
Added
CellSizeCalculator
protocol that is responsible for sizing and configuring attributes of aMessageCollectionViewCell
. #579 by @SD10. -
Added
MessageSizeCalculator
,MediaMessageSizeCalculator
,TextMessageSizeCalculator
, andLocationMessageSizeCalculator
classes that are responsible for sizing theMessagesCollectionViewCell
types provided by MessageKit. #579 by @SD10. -
Added three new methods
cellTopLabelHeight(for:at:in)
,messageTopLabelHeight(for:at:in)
, andmessageBottomLabelHeight(for:at:in)
toMessagesLayoutDelegate
. #580 by @SD10. -
Added new method
configureMediaMessageImageView(_:for:at:in)
to configure theUIImageView
of aMediaMessageCell
asynchronously. #592 by @zhongwuzw, @SD10 -
Added new
MessageContentCell
class andMessageReusableView
class. #596 by @SD10.
-
Breaking Change Renamed
MessageData
enum toMessageKind
and changedMessageType
'sdata
property name tokind
. #658 by @zhongwuzw. -
Breaking Change Changed the
messageFooterView(for:in)
andmessageHeaderView(for:in)
methods ofMessagesDisplayDelegate
by removing themessage
parameter. #615 by @SD10. -
Breaking Change Changed the
footerViewSize(for:in)
andheaderViewSize(for:in)
methods ofMessagesLayoutDelegate
by removing theMessageType
andIndexPath
parameters and replacing them with a newsection: Int
parameter. #615 by @SD10. -
Breaking Change The reuse identifiers of all
MessageReusableView
s andMessageCollectionViewCell
s have been changed to match their class name exactly. #615 by @SD10. -
Breaking Change
MessageHeaderView
andMessageFooterView
now subclassMessageReusableView
class. #596 by @SD10. -
Breaking Change Renamed
MessageCollectionViewCell
toMessageContentCell
. TheMessageCollectionViewCell
class is now a bare bones subclass. #596 by @SD10. -
Breaking Change Changed
LabelAlignment
to be astruct
with properties oftextAlignment: NSTextAlignment
andtextInsets: UIEdgeInsets
to position the text in thecellTopLabel
andcellBottomLabel
. #580 by @SD10. -
Breaking Change The type of
cellTopLabel
andcellBottomLabel
has been changed toInsetLabel
. #580 by @SD10. -
Breaking Change Renamed
cellTopLabel
tomessageTopLabel
and renamedcellBottomLabel
tomessageBottomLabel
. #659 by @SD10. -
Breaking Change Renamed the
didTapTopLabel
anddidTapBottomLabel
methods ofMessageCellDelegate
todidTapMessageTopLabel
anddidTapMessageBottomLabel
. #659 by @SD10. -
Breaking Change Renamed
cellBottomLabelAttributedText
method ofMessagesDataSource
tomessageBottomLabelAttributedText
. #659 by @zhongwuzw. -
The
MessageData.emoji
case no longer uses a default font of 2x themessageLabelFont
size. You must now set this font explicitly through theemojiMessageSizeCalculator
onMessagesCollectionViewFlowLayout
. #530 by @SD10. -
Changed the
contentMode
of theUIImageView
forMediaMessageCell
to be.scaleAspectFill
. #587 by @SD10. -
The result of the
MessagesDisplayDelegate
methodtextColor(for message:...)
no longer applies to.attributedText
case ofMessageData
. #625 by @cwalo. -
Removed the explicit height constraint from the
separatorLine
inMessageInputBar
. #667 by @zhongwuzw
-
Breaking Change Removed
NSLayoutConstraintSet
by changing access control frompublic
tointernal
. #607 by @zhongwuzw. -
Breaking Change Removed the
showsDateHeaderAfterTimeInterval
property ofMessagesCollectionView
. #615 by @SD10. -
Breaking Change Removed the
reuseIdentifier
method fromMessageCollectionViewCell
,TextMessageCell
,LocationMessageCell
,MediaMessageCell
, andMessageContentCell
. #615 by @SD10. -
Breaking Change Removed the
CollectionViewReusable
protocol. #615 by @SD10. -
Breaking Change Removed
MessageHeaderView
andMessageFooterView
in favor ofMessageReusableView
. #615 by @SD10. -
Breaking Change Removed
numberOfMessages(in)
method ofMessagesDataSource
, instead please usenumberOfSections(in)
andnumberOfItems(inSection:in)
. #601 by @SD10, @zhongwuzw. -
Breaking Change Removed the
messageLabelFont
property fromMessagesCollectionViewFlowLayout
. You can now set this property throughtextMessageSizeCalculator
property. #579 by @SD10. -
Breaking Change Removed
MessageDateHeaderView
class in favor of usingcellTopLabel
. #659 by @zhongwuzw.
- Fixed equality checking on
MessagesCollectionViewLayoutAttributes
. #593 by @zhongwuzw, @SD10
- Fixed
MessageLabel
touch location offset calculation. #664 by @austinwright.
-
Fixed
bubbleTailOutline
invalidation of message bubble. #633 by @zhongwuzw. -
Fixed
boundingRect(with:options:attributes:context)
wrong size calculation when use some font, e.g. custom font. #645 by @zhongwuzw.
- Fixed font invalidation of
attributedString
inMessageLabel
. #623 by @zhongwuzw.
- Added
shouldManageSendButtonEnabledState
toMessageInputBar
to disable automatically managingMessageInputBar.sendButton
'sisEnabled
state when text changes. (Default value istrue
). #530 by @clayellis.
- Fixed wrong separated components in messageInputBar. #577 by @zhongwuzw.
-
Optimize
collectionView
scroll behavior when abruptly stops scrolling. #470 by @zhongwuzw. -
Fixed
messageInputBar
sendButton not disabled in some situations. #475 by @zhongwuzw. -
Fixed message bubble tail orientation invalidation in
iOS9
. #469 by @zhongwuzw.
-
Fixed message rendering when
MessagesViewController
sliding back. #454 by @zhongwuzw. -
Fixed
iPhoneX
MessageInputBar
transparent bottom area whenkeyboardDismissMode
isinteractive
. #425 by @zhongwuzw. -
Fixed wrong
contentInset
calculation whennavigationBar
ishidden
#444 by @zhongwuzw.
-
Added
configureAvatarView(_ avatarView: AvatarView, for message: MessageType, at indexPath: IndexPath, in messagesCollectionView: MessagesCollectionView)
method inMessagesDisplayDelegate
protocol
to configureavatarView
. #416 by @zhongwuzw. -
Added copy support for image, text, and emoji messages. #418 by @zhongwuzw.
-
Added
UIImage
paste support to theInputTextView
. Images can easily be accessed using theInputTextView.images
property. See the example project for an updated use case.
#423 by @nathantannar4.
- Breaking Change Removed
avatar(for message: MessageType, at indexPath: IndexPath, in messagesCollectionView: MessagesCollectionView)
method ofMessagesDataSource
, useconfigureAvatarView(_ avatarView: AvatarView, for message: MessageType, at indexPath: IndexPath, in messagesCollectionView: MessagesCollectionView)
instead. #416 by @zhongwuzw.
-
Breaking Change Moved the
handleTapGesture(_ gesture: UIGestureRecognizer)
method fromMessagesCollectionViewCell
toMessagesCollectionView
. #417 by @zhongwuzw. -
Breaking Change Changed
AvatarView
from typeUIView
to typeUIImageView
. #417 by @zhongwuzw.
-
Fixed
LocationMessageCell
reuse bug, to avoid inconsistency when get capture image asynchronously. #428 by @zhongwuzw. -
Fixed
MessageLabel
detector attributes not being applied due to early exit. #429 by @antoinelamy.
-
Added
reloadDataAndKeepOffset()
method toMessagesCollectionView
to maintain the current position when reloading data. #284 by @azurechen. -
Added
maintainPositionOnKeyboardFrameChanged: Bool
property to maintain the current position of theMessagesCollectionView
when the height of theMessageInputBar
changes. #340 by @KEN-chan. -
Added
detectorAttributes(for:and:at:)
method toMessagesDisplayDelegate
allowingDetectorType
attributes to be set outside of the cell. #397 by @SD10.
-
Fixed
indexPathForLastItem
bug whennumberOfSections
equal to 1. #395 by @zhongwuzw. -
Fixed
scrollToBottom(animated:)
not work in some situations. #395 by @zhongwuzw. -
Fixed
.attributedText(NSAttributedString)
messages that were not using thetextColor
from theMessagesDisplayDelegate
method. #414 by @SD10. -
Fixed a bug where new messages using
.attributedText(NSAttributedString)
have the incorrect font. #412 by @SD10.
-
Breaking Change The
MessageLabel
propertiesaddressAttributes
,dateAttributes
,phoneNumberAttributes
, andurlAttributes
are now read only. Please usesetAttributes(_:detector:)
to set these properties. #397 by @SD10. -
Breaking Change Removed the generic constraint
<ContentView: UIView>
fromMessageCollectionViewCell
. #391 by @SD10. -
Breaking Change The
contentView
property has been renamed toimageView
forLocationMessageCell
andMediaMessageCell
andmessageLabel
forTextMessageCell
. #391 by @SD10. -
Breaking Change Changed the name of
MessageInputBar
's propertymaxHeight
tomaxTextViewHeight
as the property is the max height theInputTextView
can have, not theMessageInputBar
itself. #380 by @nathantannar4. -
Breaking Change Adds a new view
contentView
of typeUIView
to the MessageInputBar to hold the main subviews of theMessageInputBar
. Reduces complexity of constraints for easier testing/debugging. #384 by @nathantannar4.
- Breaking Change Removed
scrollsToBottomOnFirstLayout
flag ofMessagesViewController
. #395 by @zhongwuzw.
-
Breaking Change Added a top
InputStackView
toMessageInputBar
. This adds the addition of the.top
case toInputStackView.Position
. #320 by @nathantannar4. -
Breaking Change Added
AvatarPosition
andavatarPosition(for:at:in)
to configure anAvatarView
's vertical and horizontal position in aMessageCollectionViewCell
. #322 by @SD10. -
Added
shouldCacheLayoutAttributes(for:MessageType)-> Bool
method toMessagesLayoutDelegate
to manage whether aMessageType
's layout information is cached or not. #364 by @SD10.
-
Breaking Change The
cellTopLabel
andcellBottomLabel
properties ofMessageCollectionViewCell
are no longer typed asMessageLabel
and are now regularUILabel
s. #355 by @SD10. -
All
DetectorType
s forMessageLabel
are disabled by default. #356 by @SD10.
-
Breaking Change Fixed all instances of misspelled
initial
property.Avatar.initial
has changed toAvatar.initial
and the initializer has changed frompublic init(image: UIImage? = nil, initials: String = "?")
topublic init(image: UIImage? = nil, initials: String = "?")
. #298 by @sidmclaughlin. -
Fixed
MessageInputBar
'stranslucent
functionality. #348 by @zhongwuzw. -
Fixes infinite loop when dismissing keyboard on iPhone X. #350 by @nathantannar4.
-
Fixed incorrect sizing of
cellTopLabel
andcellBottomLabel
. #371 by @SD10.
-
Breaking Change Removed
AvatarAlignment
andavatarAlignment(for:at:in)
delegate method in favor of newAvatarPosition
representing both vertical and horizontal alignments. #322 by @SD10. -
Breaking Change Removed the
avatarAlwaysLeading
andavatarAlwaysTrailing
properties of `MessagesCollectionViewFlow$ #322 by @SD10. -
Breaking Change Removed
LocationMessageDisplayDelegate
&TextMessageDisplayDelegate
and moved their methods into theMessagesDisplayDelegate
protocol. RemovedLocationMessageLayoutDelegate
&MediaMessageLayoutDelegate
and moved their methods into theMessagesLayoutDelegate
protocol. #363 by @SD10.
-
Fixed
contentInset.top
adjustment of theMessagesCollectionView
on iOS versions less than 11 where it was found that messages appeared under the navigation var #334 by @nathantannar4. -
Fixed
cellBottomLabel
origin X for the.messageLeading
alignment and origin Y so that thecellBottomLabel
is always under theMessageContainerView
. #326 by @SD10. -
Fixed pixelation of
AvatarView
's placeholder text initials. #343 by @johnnyoin. -
Fixed
MessageLabel
address detection handler. #341 by @zhongwuzw -
Fixed crash for escaping block in
InputBarItem
’ssetSize(newValue:animated)
method. #342 by @zhongwuzw.
-
Fixed a bug that caused a race condition to be met when invalidating the
intrinsicContentSize
of theMessageInputBar
which froze the app during a "Select" or "Select All" long press #313 by @zhongwuzw. -
Fixed a bug that the
placeholderLabel
subview
ofInputTextView
leads to ambiguous content size because of incorrectAuto Layout
. #310 by @zhongwuzw. -
Fixed a bug that the
leftStackView
、rightStackView
subview
ofMessageInputBar
leads to ambiguousAuto Layout
issue because of typo. #311 by @zhongwuzw.
- Changed
InputStackView
defaultalignment
from.fill
to.bottom
. #311 by @zhongwuzw.
-
Added
removedCachedAttributes(for:MessageType)
,removeAllCachedAttributes()
, andattributesCacheMaxSize
toMessagesCollectionViewFlowLayout
to manage the caching of layout information for messages. #263 by @SD10. -
Created
SeparatorLine
andInputStackView
as their own subclass ofUIView
andUIStackView
respectively. This just improves reusability. #273 by @nathantannar4.
-
Breaking Change The properties
leftStackView
,rightStackView
andbottomStackView
inMessageInputBar
are now of typeInputStackView
. The propertyseparatorLine
is also now of typeSeparatorLine
inMessageInputBar
. #273 by @nathantannar4. -
Layout information is now being cached by
MessagesCollectionViewFlowLayout
for eachMessageType
using themessageId
property. (This means if your layout is dynamic over theIndexPath
you need to handle cache invalidation). #263 by @SD10. -
Layout anchors for the
MessagesCollectionView
andMessageInputBar
now include the safeAreaLayoutGuide to fix layout issues on iPhone X #280 by @nathantannar4.
-
Fixed a bug that prevented the
textAlignment
property ofInputTextView
'splaceholderLabel
from having noticeable differences when changed to.center
or.right
. #262 by @nathantannar4. -
Initial
contentInset.bottom
reference changed frommessageInputBar
toinputAccessoryView
to allow custominputAccessoryView
's that don't break the initial layout. #267 by @nathantannar4. -
Changes the
MessageInputBar
bottomUIStackView
'sbottomAnchor
tolayoutMarginsGuide.bottomAnchor
to fix issues on the iPhone X. #266 by @nathantannar4. -
Initial
contentInset.bottom
reference changed frommessageInputBar
toinputAccessoryView
to allow custom inpinputAccessoryView
's that don't break the initial layout #267 by @nathantannar4.
- Breaking Change Removed
additionalTopContentInset
property ofMessagesViewController
because this is no longer necessary whenextendedLayoutIncludesOpaqueBars
istrue
. #250 by @SD10.
-
Breaking Change
.custom((MessageContainerView)->Void)
case toMessageStyle
enum. #163 by @SD10. -
Breaking Change
UIEdgeInsets
associated value to allLabelAlignment
enum cases. #166 by @SD10. -
Breaking Change
.emoji(String)
case toMessageData
enum. #222 by @SirArkimdes. -
Breaking Change
TextMessageDisplayDelegate
to handleenabledDetectors(for:at:in)
and movestextColor(for:at:in)
to this namespace. #230 by @SD10 -
LocationMessageDisplayDelegate
to customize a location messages appearance and add aMKAnnotationView
to location message snapshots. #150 by @etoledom. -
messageLabelInsets(for:indexPath:messagesCollectionView
method toMessagesLayoutDelegate
. #162 by @SD10. -
animationBlockForLocation(message:indexPath:messagesCollectionView)
method toLocationMessageDisplayDelegate
to customize the display animation of the location message's map. #210 by @etoledom. -
scrollsToBottomOnFirstLayout
property to automatically scroll to the bottom ofMessagesCollectionView
on first load. #213 by @FraDeliro. -
scrollsToBottomOnKeyboardDidBeginEditing
property to automatically scroll to the bottom ofMessagesCollectionView
when the keyboard begins editing. #217 by @SD10. -
additionalTopContentInset
property toMessagesCollectionViewController
to allow users to account for extra subviews. #218 by @SD10. -
messagePadding(for:at:in)
method toMessagesLayoutDelegate
to dynamically set padding aroundMessageContainerView
. #208 by @SD10.
-
MessageInputBar
now correctly sizes itself when breaking its max height or pasting in large amounts of text #173 by @nathantannar4. -
MessageInputBar
faced a rendering issue on subsequent presentations of aMessageViewController
. This was originally patched by adding a copy to the view duringviewDidAppear(animated:)
however that led to other issues #116. A correct patch has now been applied. #178 by @nathantannar4. -
Incorrect sizing of
MessagesCollectionView
s content inset by settingextendedLayoutIncludesOpaqueBars
to true by default. #204 by @SD10. -
scrollIndicatorInsets
to match the insets of theMessagesCollectionView
. #174 by @etoledom. -
MediaMessageCell
had an offsetPlayButtonView
that was being constrained to the cell and not the message container. #239 by @SirArkimedes.
-
Breaking Change
snapshotOptionsForLocation
method is now part ofLocationMessageDisplayDelegate
. #150 by @etoledom. -
Breaking Change
setMapSnapshotImage
now includes anannotationView: MKAnnotationView?
argument. #150 by @etoledom. -
Breaking Change
messageLabelInsets
has been made into a method onMessagesLayoutDelegate
. #162 by @SD10. -
Breaking Change
messageLabelInsets
now defaults to aleft
inset of 18 for incoming messages and aright
inset of 18 for outgoing messages. #162 by @SD10. -
Breaking Change
InputTextView
'sUITextViewDelegate
is now set toself
#173 by @nathantannar4. -
Breaking Change
MessagesDisplayDelegate
messageHeaderView(for:at:in)
andmessageFooterView(for:at:in)
to return non-optionals. #229 by @SD10. -
Breaking Change
MessagesCollectionView
dequeueMessageHeaderView(withIdentifier:for:)
&dequeueMessageFooterView(widthIdentifier:for:)
have been renamed todequeueReusableHeaderView(CollectionViewReusable.Type,for:)
&dequeueReusableFooterView(CollectionViewReusable.Type,for:)
. #229 by @SD10. -
configure
method of allMessageCollectionViewCell
types to be marked asopen
. #200 by @SD10. -
MessageHeaderView
,MessageFooterView
, andMessageDateHeaderView
initializers to bepublic
. #175 by @cwalo. -
UICollectionViewDataSource
andUICollectionViewDelegate
methods ofMessagesViewController
to beopen
. #177 by @cwalo.
-
Breaking Change
cellTopLabelInsets
andcellBottomLabelInsets
fromMessagesCollectionViewFlowLayout
. #166 by @SD10. -
Breaking Change
messageToViewEdgePadding
onMessagesCollectionViewFlowLayout
in favor ofmessagePadding(for:at:in)
. #208 by @SD10.
- Support for Swift 4
- Support for Swift 3.2 and Xcode 9
This release closes the 0.8 milestone.
- Breaking Change
MessageData
now supports.photo(UIImage)
,.location(CLLocation)
,.video(file: URL, thumbnail: UIImage)
cases. - Breaking Change
MessageCollectionViewCell
is now generic over itsContentView
constrained toUIView
. - Breaking Change
TextMessageCell
subclass ofMessageCollectionViewCell
to support text messages. MediaMessageCell
subclass ofMessageCollectionViewCell
to support photo/video messages.LocationMessageCell
subclass ofMessageCollectionViewCell
to support location messages.- Adds
LocationMessageLayoutDelegate
for sizing of location messages. - Adds
MediaMessageLayoutDelegate
for sizing of media messages. AvatarView
now supportsfontMinimumScaleFactor
,placeholderFontColor
, andplaceholderFont
properties
- Keyboard handling no longer adjusts the top & bottom insets for
MessagesCollectionView
. MessageStyle
s are now applied as amask
on theMessageContainerView
MessageCollectionViewCell
'smessageLabel
has been renamed tomessageContentView
AvatarView
'ssetBackground(color: UIColor)
method has been deprecated in favor ofbackgroundColor
AvatarView
'sgetImage()
method has been deprecated in favor of a newimage
property.
- Fixes extra height on text messages due to font specified in
MessagesCollectionViewFlowLayout
not being applied. AvatarView
's placeholder image is no longer constrained to a size of30 x 30
.AvatarView
's placeholder text can now auto-adjust based on available width.
- Fixes invalid image path for Carthage resources.
- Fixes missing asset bundle resources for Carthage installation.
- Fixes missing asset bundle resources in framework.
This release closes the 0.7 milestone
This release closes the 0.6 milestone.
This release closes the 0.5 milestone.
This release closes the 0.4 milestone.
This release closes the 0.3 milestone.
This release closes the 0.2 milestone.
This release closes the 0.1 milestone.
Initial release. 🎉