Настройка внешнего вида
Дизайн и поведение чата задаются полями THRAttributes
.
Настройка отображения
История
historyLoadingCount
- количество сообщений, которое загружается из истории. По умолчанию загружается 50 сообщений.
Поведение навигации
canShowSpecialistInfo
- показывать ли экран информации об операторе (открывается по тапу на аватар оператора).
Экран спиннера + загрузки
launchActivityViewColor
- спиннер, цвет анимационной картинки, показывающая загрузкуlaunchViewInnerBoxBackgroundColor
- спиннер, цвет прямоугольника в центре экранаlaunchViewInnerBoxCornerRadius
- спиннер, радиус скругления углов прямоугольника в центре экранаlaunchViewInnerBoxSize
- спиннер, размеры прямоугольника в центре экранаlaunchViewTextColor
- спиннер, цвет текста под анимационной картинкойlaunchViewTextFont
- спиннер, шрифт текста под анимационной картинкойlaunchViewBackgroundColor
- спиннер, цвет экрана загрузкиloadingChatErrorImage
- (UIImage) центральная картинка на экране загрузкиloadingChatTitleFont
- шрифт текста на экране загрузкиloadingChatTitleColor
- цвет текста на экране загрузкиloadingChatSubtitleFont
- шрифт подтекста на экране загрузкиloadingChatSubtitleColor
- цвет подтекста на экране загрузкиloadingChatRepeatButtonTitleFont
- шрифт текста кнопки на экране загрузкиloadingChatRepeatButtonTitleColor
- цвет текста кнопки на экране загрузкиloadingChatRepeatButtonBackgroundColor
- цвет кнопки на экране загрузки
Внешний вид navigationBar
statusBarStyle
- стиль статус бара, применяется только при интеграции чата на полный экранdefault: UIStatusBarStyleLightContent
navigationBarVisible
- признак, определяет, отображается ли шапка чата (по умолчанию скрыта)attributes.showCloseButton
- признак, определяет, скрыта ли кнопка закрытия чатаcloseButtonColor
- (UIColor) цвет кнопки закрытия чата (template rendering)closeButtonImage
- (UIImage) иконка кнопки закрытия чата (template rendering)navigationBarTitleFont
- шрифт основного текста в шапке чатаnavigationBarTitleColor
- цвет основного текста в шапке чатаnavigationBarBackButtonColor
- цвет кнопки назад в шапке чатаnavigationBarSubtitleFont
- шрифт подзаголовка в шапке чатаnavigationBarSubtitleColor
- цвет подзаголовка в шапке чатаchatStateNotConnectedTitle
(Устаревшее с 3.8.4) - заголовок чата при отсутствии связи, по умолчанию "Контакт центр" (начиная с версии 3.8.4 перенесен вThreadsLocalizable
. Новый ключstate_not_connected
)chatStateReadyTitle
(Устаревшее с 3.8.4) - заголовок чата готового к работе, по умолчанию "Контакт центр" (начиная с версии 3.8.4 перенесен в ThreadsLocalizable. Новый ключstate_ready
)navigationBarSubtitleShowOrgUnit
- показывать ли подразделение агента, по умолчанию выключеноnavigationBarCustomizeTitle
- использовать динамический заголовок в шапке чата, по умолчанию включеноnavigationBarTitle
- статический заголовок в шапке чатаnavigationBarLarge
- увеличенный заголовок в шапке чата, выравнивание влево, кнопка закрытия чата отключенаnavigationBarShadow
- тень для навигационного бара (по умолчанию выключено)navigationBarShadowSettings
- (THRSettingsShadow) сгруппированный в структуру набор настроек для тени навигационного бара
let shadowSettings = THRSettingsShadow(opacity: 1.0,
radius: 3.0,
offset: CGSize(width: 3.0, height: 3.0),
color: .black)
Threads.threads().attributes.navigationBarShadowSettings = shadowSettings
Приветственный экран
к сведению
отображается, пока в чате нет сообщений
backgroundColor
- фоновый цвет чатаplaceholderImage
- изображение на пустом экранеplaceholderTitleColor
- цвет основного текста на пустом экранеplaceholderSubtitleColor
- цвет описания на пустом экранеplaceholderTitleFont
- шрифт основного текста на пустом экранеplaceholderSubtitleFont
- шрифт описания на пустом экране
Внешний вид поля ввода сообщения
showAttachButton
- отображать или нет кнопку отправки файла: true - отображать, false - не отображать. По умолчанию true.attachButtonColor
- основной цвет кнопки отправки файлаattachButtonHighlightColor
- цвет нажатой кнопки отправки файлаattachButtonImage
- иконка кнопки отправки файлаsendButtonColor
- основной цвет кнопки отправки сообщенийsendButtonHighlightColor
- цвет нажатой кнопки отправки сообщенийsendButtonDisabledColor
- цвет неактивной кнопки отправки сообщенийsendButtonImage
- иконка кнопки отправки сообщения (если задана - то имеет приоритет перед конфигурацией кнопки с текстом "Отправить")sendButtonFont
- шрифт на кнопке отправки сообщений (для кнопки без иконки, с текстом "Отправить")myMessageFont
- шрифт текста набираемого сообщенияtoolbarInputTextColor
- цвет текста сообщенияtoolbarInputCursorColor
- цвет курсора в поле вводаtoolbarBackgroundColor
- цвет заливки toolbartoolbarTintColor
- цвет подсветки элементов в toolbartoolbarSeparatorLineColor
- цвет разделительной линии тулбараtoolbarQuotedMessageAuthorFont
- шрифт для имени автора в цитируемом сообщенииtoolbarQuotedMessageFont
- шрифт для текста цитируемого сообщенияtoolbarQuotedMessageAuthorColor
- цвет для имени автора в цитируемом сообщенииtoolbarQuotedMessageColor
- цвет для текста цитируемого сообщенияtoolbarInputMinimumHeight
- минимальная высота поля вводаtoolbarInputMaximumHeight
- максимальная высота поля вводаtoolbarInputCornerRadius
- радиус скругления углов поля вводаtoolbarInputHasBorder
(true/false) - управление отображением контура поля вводаtoolbarInputBackgroundColor
- цвет заливки поля ввода
Внешний вид индикатора ожидания оператора
waitingSpecialistSpinnerColor
- цвет индикатора загрузкиwaitingSpecialistBgColor
- цвет фона индикатора загрузкиwaitingSpecialistBorderColor
- цвет границ индикатора загрузкиwaitingSpecialistBorderWidth
- толщина границ индикатора загрузкиshowWaitingForSpecialistProgress
- признак, отображать ли индикатор загрузки при поиске оператора
Внешний вид индикатора ScrollToBottom
scrollToBottomImage
- иконка на кнопке ScrollToBottomscrollToBottomBadgeColor
- цвет фона для индикатора непрочитанных сообщений сверху ScrollToBottomscrollToBottomBadgeTextColor
- цвет текста для индикатора непрочитанных сообщений сверху ScrollToBottom
Общие настройки сообщений
bubbleMessageFont
- шрифт в текстах сообщенийbubbleTimeFont
- шрифт времени отправки сообщенияfailedMessageFont
- шрифт для предупреждения "Сообщение не отправлено"messageHeaderFont
- шрифт для даты сообщенийmessageHeaderTextColor
- цвет для даты сообщенийquoteAuthorFont
- шрифт для имени автора цитированного сообщенияquoteMessageFont
- шрифт для текста цитированного сообщенияquoteTimeFont
- шрифт для времени цитированного сообщенияquoteFilesizeFont
- шрифт для размера цитированоого файлаmessageBubbleFilledMaskImage
- изображение маски для сообщений (png-файл, заполненный бабл с прозрачным фоном). Если дефолтная настройка изменяется, то для messageBubbleStrokedMaskImage нужно использовать файл, учитывающий новые контуры messageBubble.messageBubbleStrokedMaskImage
- изображение маски для сообщений (png-файл, контур бабла с прозрачным фоном)messageContainerLeftOffset
- сдвиг контейнера сообщения слева направо. Используйте, если ваш бабл содержит ручку-выступ. Сдвиг задается по размеру ширины этого выступа.messageContainerRightOffset
- сдвиг контейнера сообщения справа налево. Используйте, если ваш бабл содержит ручку-выступ. Сдвиг задается по размеру ширины этого выступа.emptyImageColor
- цвет незагруженного изображенияcommonMessageAvatarSize
- размер аватара несистемного сообщения в pt.timeAndStatusBackgroundColor
- цвет подложки статуса и времени на сообщениях с картинкой
Системные сообщения
systemMessageAvatarSize
- размер аватара в системном сообщенииspecialisConnectTitleFont
- шрифт текста с именем подключившегося оператораspecialisConnectSubtitleFont
- шрифт дополнительного текста под именем оператора ("подключился к диалогу")specialisConnectTitleColor
- цвет текста с именем подключившегося оператораspecialisConnectSubtitleColor
- цвет дополнительного текста под именем оператора ("подключился к диалогу")typingText
- текст, для индикатора тайпинга (если текст будет не задан, будет отображаться стандартная для чата анимированная view)scheduleIcon
- иконка системного сообщения "Чат недоступен"scheduleAlertColor
- цвет текста системного сообщения "Чат недоступен"scheduleAlertFont
- шрифт текста системного сообщения "Чат недоступен"scheduleIconBackgroundColor
- цвет иконки нерабочего времени чата
Входящие сообщения
incomingBubbleStroked
- (BOOL) должен ли фон входящего сообщения быть контурнымincomingBubbleColor
- цвет фона/контура входящего сообщенияincomingBubbleTextColor
- цвет текста входящего сообщенияincomingTimeColor
- цвет времени отправки входящего сообщенияshowIncomingAvatar
- показывать ли аватар специалиста во входящих сообщенияхincomingQuoteSeparatorColor
- цвет вертикальной черты во входящем сообщении с цитатойincomingQuoteAuthorColor
- цвет имени автора во входящем сообщении с цитатойincomingQuoteMessageColor
- цвет текста во входящем сообщении с цитатойincomingQuoteFilesizeColor
- цвет размера файла во входящем сообщении с цитатойincomingFileIconTintColor
- цвет иконки файла во входящем сообщенииincomingFileIconBgColor
- фон индикатора загрузки файла во входящем сообщенииincomingMediaTimeColor
- цвет времени отправки во входящем сообщении с каincomingBubbleLinkColor
- цвет ссылок
Исходящие сообщения
failedBubbleStroked
- (BOOL) должен ли фон неотправленного сообщения быть контурнымfailedBubbleColor
- цвет фона/контура неотправленного сообщенияoutgoingBubbleStroked
- (BOOL) должен ли фон отправленного сообщения быть контурнымoutgoingBubbleColor
- цвет фона/контура отправленного сообщенияoutgoingBubbleTextColor
- цвет текста отправленного сообщенияoutgoingTimeColor
- цвет времени отправки исходящего сообщенияoutgoingPendingStatusColor
,outgoingDeliveredStatusColor
,outgoingReadStatusColor
- цвета иконок статусов отправки сообщенияavatarPlaceholderImage
- заглушка для несуществующих аватаровoutgoingQuoteSeparatorColor
- цвет разделителя в исходящем сообщении с цитатойoutgoingQuoteAuthorColor
- цвет имени автора в исходящем сообщении с цитатойoutgoingQuoteMessageColor
- цвет текста цитаты в исходящем сообщенииoutgoingQuoteFilesizeColor
- цвет размера файла в цитированном исходящем сообщенииoutgoingMediaTimeColor
- цвет времени отправки исходящего сообщения с картинкойoutgoingMediaPendingStatusColor
,outgoingMediaDeliveredStatusColor
,outgoingMediaReadStatusColor
- цвета иконок статусов отправки сообщений с картинкойoutgoingBubbleLinkColor
- цвет ссылокoutgoingPendingStatusImage
- (UIImage) картинка для статуса ОжиданиеoutgoingDeliveredStatusImage
- (UIImage) картинка для статуса ДоставленоoutgoingReadStatusImage
- (UIImage) картинка для статуса Прочитано
Голосовые сообщения
voiceRecordingAllowed
- показывать ли кнопку записи голосового сообщенияvoiceMessageRecordButtonImage
- иконка кнопки записиvoiceMessageSendButtonImage
- иконка кнопки отправки голосового сообщенияvoiceMessageRecordSendButtonColor
- цвет иконки записи/отправки голосового сообщенияvoiceMessagePlayImage
- иконка кнопки воспроизведенияvoiceMessagePauseImage
- иконка кнопки паузыincomingVoiceMessagePlayPauseColor
- цвет кнопки воспроизведения/паузы входящего сообщенияoutgoingVoiceMessagePlayPauseColor
- цвет кнопки воспроизведения/паузы исходящего сообщенияpreviewVoiceMessagePlayPauseColor
- цвет кнопки воспроизведения/паузы превью сообщенияincomingVoiceMessageProgressColor
- цвет части прослушанного входящего сообщенияoutgoingVoiceMessageProgressColor
- цвет части прослушанного исходящего сообщенияpreviewVoiceMessageProgressColor
- цвет части прослушанного превью сообщенияpreviewVoiceMessageBackgroundColor
- цвет фона превью голосового сообщения
Изображения + отступы от краев сообщения
imageEdgesActivated
- (Bool) включить/выключить отступы у изображений внутри bubble сообщенияimageEdges
- (UIEdgeInsets) структура с определениями отступов (top, left, bottom, right)imageCornerRadius
- (CGFloat) радиус на углах изображения (при включенной опции imageEdgesActivated)
Поиск сообщений
searchEnabled
- показывать ли кнопку поиска сообщений (по умолчанию true)searchScopeBarTintColor
- цвет подсветки scopeBar-а экрана поиска сообщений (переключение режимов поиска - сообщения, изображения, файлы)searchBarTextColor
- цвет текста в строке поискаsearchBarTintColor
- цвет каретки в строке поискаsearchScopeBarFont
- шрифт текста в scopeBar-еsearchBarTextFont
- шрифт текста в строке поискаclearSearchIcon
- иконка для кнопки "Очистить" в строке поискаfindedMessageHeaderTextColor
- цвет текста в шапке таблицы с результатами поискаfindedMessageHeaderBackgroundColor
- фон шапки таблицы с результатами поискаfindedMessageHeaderTextFont
- шрифт текста в шапке таблицы с результатами поискаfindMoreMessageTextColor
- цвет текста в кнопке "Найти еще" в поискеfindMoreMessageTextFont
- шрифт текста в кнопке "Найти еще" в поискеsearchMessageAuthorTextColor
- цвет имени автора найденного сообщенияsearchMessageTextColor
- цвет текста найденного сообщенияsearchMessageDateTextColor
- цвет даты отправки найденного сообщенияsearchMessageFileTextColor
- цвет имени файла в найденном сообщенииsearchMessageMatchTextColor
- цвет "совпадения" поискового запроса в тексте найденного сообщения (если поисковый запрос “Прив”, в сообщении с текстом “Привет” подстрока”Прив” выделится этим цветом)searchMessageAuthorTextFont
- шрифт имени автора найденного сообщенияsearchMessageTextFont
- шрифт текста найденного сообщенияsearchMessageDateTextFont
- шрифт даты отправки найденного сообщенияsearchMessageFileTextFont
- шрифт имени файла в найденном сообщенииsearchMessageMatchTextFont
- шрифт "совпадения" поискового запроса в тексте найденного сообщенияsearchBarIconTintColor
- цвет иконки поиска в шапке чатаsearchImageNotFound
- (UIImage) картинка, если не было найдено при поисковом запросе ни одного сообщенияsearchTextColorNotFound
- цвет текста сообщения, если не было найдено при поисковом запросе ни одного сообщенияsearchTextFontColorNotFound
- шрифт текста сообщения, если не было найдено при поисковом запросе ни одного сообщения
Превью ссылок
linkPreviewEnabled
- выключает | выключает превью ссылок в сообщениях (false
по умолчанию)
Отправка фотографий в чат
photoPickerBackgroundColor
- цвет заливки pickerSheetphotoPickerSheetTextColor
- цвет шрифта в pickerSheet-е со списком фотографийphotoPickerMaxImagesCount
- максимальное количество изображений, который клиент может отправить в одном сообщении (минимум - 1, максимум - 20, по умолчанию - 10)
Просмотр файлов и изображений
fileViewerNavBarBackgroundColor
- цвет навбара на экране просмотра файлов\изображенийfileViewerNavBarTintColor
- цвет контролов навбараfileViewerBackgroundColor
- цвет фонаfileViewerTitleColor
- цвет заголовкаfileViewerTitleFont
- шрифт заголовка
Опросы
surveyTextColor
- цвет основного текста опросаsurveyTextFont
- шрифт основного текста опросаsurveyCompletionColor
- цвет текста завершения опросаsurveyCompletionFont
- шрифт текста завершения опросаsurveyCompletionDelay
- задержка завершения опроса в миллисекундах, в течение которой можно поменять оценку. По умолчанию 3000.iconStarRatingEmty
- иконка пустого рейтинга - передавать как темплейтimageWithRenderingMode:UIImageRenderingModeAlwaysTemplate
iconStarRatingFull
- иконка заполненного рейтинга - передавать как темплейтimageWithRenderingMode:UIImageRenderingModeAlwaysTemplate
starRatingColorEnabled
- цвет заполненной иконки рейтинга опросаstarRatingColorDisabled
- цвет пустой иконки рейтинга опросаstarRatingColorCompleted
- цвет иконки рейтинга завершенного опросаiconLikeEmpty
- иконка не выбранного положительного ответа бинарного опроса - передавать как темплейтimageWithRenderingMode:UIImageRenderingModeAlwaysTemplate
iconLikeFull
- иконка выбранного положительного ответа бинарного опроса - передавать как темплейтimageWithRenderingMode:UIImageRenderingModeAlwaysTemplate
iconDislikeEmpty
- иконка не выбранного отрицательного ответа бинарного опроса - передавать как темплейтimageWithRenderingMode:UIImageRenderingModeAlwaysTemplate
iconDislikeFull
- иконка выбранного отрицательного ответа бинарного опроса - передавать как темплейтimageWithRenderingMode:UIImageRenderingModeAlwaysTemplate
likeRatingColorEnabled
- цвет выбранной иконки ответа на бинарный опросlikeRatingColorDisabled
- цвет не выбранной иконки ответа на бинарный опросlikeRatingColorCompleted
- цвет иконки выбранного ответа завершенного бинарного опросаlikeLabelOnStarColor
- цвет текста на иконке завершенного опросаlikeLabelUnderStarColor
- цвет текста под иконкой завершенного опросаsurveyButtonsBackgroundColor
- цвет фона кнопок в кнопочном опросеsurveyButtonsTextColor
- цвет текста кнопок в кнопочном опросеsurveyButtonsCompletedColor
- цвет текста завершенного кнопочного опроса
Быстрые ответы
quickRepliesBlockInput
- блокировать ли поле ввода при наличии быстрых ответовquickReplyPresentationMode
- режим отображения кнопок быстрых ответов. .toolbar - во всплывающей панели, .embed - в потоке сообщенийquickReplyAlignment
- выравнивание быстых ответов по горизонтали. Выравнивание по центру : .center. Выравнивание по левому краю: .left. Выравнивание по правому краю: .right. Значение по умолчанию: .rightquickReplyFont
- шрифт текста быстрых ответовquickReplyBorderCornerRadius
- радиус скругления угловquickReplyBorderColor
- цвет границыquickReplyBackgroundColor
- цвет фонаquickReplyTextColor
- цвет текстаquickReplyBackgroundColorHighlighted
- цвет фона при нажатииquickReplyTextColorHighLighted
- цвет текста при нажатии
Локальные уведомления
toastViewTextCopy
- текст уведомления (String)toastViewTextColor
- цвет текста уведомления (UIColor)toastViewBackgroundColor
- цвет фона уведомления (UIColor)toastViewSize
- размер уведомления (CGSize)
Дополнительные параметры
canShowSpecialistInfo
- можно ли открыть экран с информацией об оператореnavigationBarVisible
- видимость шапки (навигейшн бара)customHTTPHeadersForDataStore
- набор пользовательских HTTP-заголовков для датастораhistoryLoadingCount
- количество сообщений, загружаемых при запросе историиrefreshColor
- цвет индикатора подгрузки сообщенийscrollToLatest
- прокрутка чата к последнему сообщению в ленте после получения истории (по умолчанию false)
Расширенные настройки элементов управления
Для некоторых элементов управления есть возможность полного переопределения внешнего вида:
Кнопка отправить
[Threads threads].controls.sendButton
- кнопка отправки сообщенияlet sendButton = UIButton(frame: .zero)
sendButton.backgroundColor = UIColor.lightGray
sendButton.setTitle("Послать", for: .normal)
sendButton.tintColor = (UIColor.blue)
sendButton.setTitleColor(UIColor.red, for: .normal)
sendButton.setTitleColor(UIColor.gray, for: .focused)
sendButton.setTitleColor(UIColor.green, for: .disabled)
sendButton.layer.borderWidth = 1
sendButton.layer.cornerRadius = 4
threads.controls.sendButton = sendButton
Кнопка добавления файлов
[Threads threads].controls.attachButton
- кнопка прикрепления вложения к сообщениюlet frame = CGRect(x: 0, y: 0, width: 60, height: 44)
let attachButton = UIButton(frame: frame)
attachButton.setImage(UIImage(named: "tabBarItemUsers"), for: .normal)
attachButton.tintColor = UIColor.brown
attachButton.backgroundColor = UIColor.lightGray
attachButton.layer.borderWidth = 1
attachButton.layer.cornerRadius = 4
threads.controls.attachButton = attachButton