Chat Room Page

This page shows all the messages in a direct chat.

Message List Page Header



User avatar

If the user has no avatar, the system will show the default avatar.

User Display name

If the user has no display name, the display name will be 'anonymous'.

Back button

Redirects user back to the previous page.

Message List



Show list of message

The latest message bubble will be at the bottom of the screen. Scroll up to see all messages.

Date label

Grouping of messages by the sent date

Message Bubble - Text Message Bubble



Read more mode

When the text is more than 13 lines, the system show read more mode. Once it is clicked on the read more button, it expands text to the full size.

Long press to delete

If the long click event occurs, the system will show the delete option.

Long press to edit

If the long click event occurs, the system will show the edit option. When click the edit option, the system will redirect the user to the edit message page.

Error to send message indicator

If the message can not be sent, the system will show the error indicator in front of the message bubble.

Sent time stamp

Show as time stamp HH:MM

Edited label

If the message is edited, the edited label will be shown.

Deleted message

If the message is deleted, the deleted view will be shown.

Message bubble - Image message bubble



Image thumbnails

The system shows the image base on the image ratio. Once it is clicked, it will redirect the user to the edit message page.

Image upload state

The system will show the image uploading indicator while the image is being uploaded.

Image Preview Page



Pinch zoom gesture

The user can pinch the screen to zoom in or out the image.


Redirect user back to the previous page.

Message Bubble - Audio Message Bubble



Click to play

If the user clicks on the voice message , the system will play the audio

Click to stop

If the user clicks on the playing voice message or play another voice message, the system will stop playing the playing audio.

Audio Message Recorder



Hold to record

The user can hold to record an audio message for up to 60 seconds. Once the user releases the finger, the system will send the audio message.

Discard the record

The user can drag the finger to the bin button to discard the current recording session.

Edit Text Message Page



Add text

User can update the text from the original input


User can click save button to save the change he made.

Discard change

user can click x to discard all change before user click save.


import UIKit
import AmityUIKit

class ClientViewController: UIViewController {
    override func viewDidLoad() {
    @IBAction func showMessageListPage(_ sender: UIButton) {
        let messageVC = AmityMessageListViewController.make(channelId: "CHANNEL_ID")
        present(messageVC, animated: true)





Use to query channel info and message list

Specify Custom Settings

You can create and specify Settings object when creating AmityMessageListViewController.

// 1. Create the settings object.
var settings = AmityMessageListViewController.Settings()
settings.composeBarStyle = .textOnly

// 2. Specify the settings as parameter.
let messageVC = AmityMessageListViewController.make(channelId: "CHANNEL_ID", settings: settings)

The available settings are shown below.

Compose Bar Style

There are two compose bar styles available in the UIKit.

  1. ComposeBarStyle.default - has full functionalities including text, audio and, image message sending

  2. ComposeBarStyle.textOnly - has simple functionalities which are only limited to text message sending

The default settings for compose bar style is ComposeBarStyle.default.

Last updated