Настройка внешнего вида
Дизайн и поведение чата задаются полями THRAttributes.
Настройка отображения
История
historyLoadingCount- количество сообщений, которое загружается из истории. По умолчанию загружается 50 сообщений.
Поведение навигации
canShowSpecialistInfo- показывать ли экран информации об операторе (открывается по тапу на аватар оператора).
Экран спиннера + загрузки
launchActivityViewColor- спиннер, цвет анимационной картинки, показывающая загрузкуlaunchViewInnerBoxBackgroundColor- спиннер, цвет прямоугольника в центре экранаlaunchViewInnerBoxCornerRadius- спиннер, радиус скругления углов прямоугольника в центре экранаlaunchViewInnerBoxSize- спиннер, размеры прямоугольника в центре экранаlaunchViewTextColor- спиннер, цвет текста под анимационной картинкойlaunchViewTextFont- спиннер, шрифт текста под анимационной картинкойlaunchViewBackgroundColor- спиннер, цвет экрана загрузкиloadingChatErrorImage- (UIImage) центральная картинка на экране загрузкиloadingChatTitleFont- шрифт текста на экране загрузкиloadingChatTitleColor- цвет текста на экране загрузкиloadingChatSubtitleFont- шрифт подтекста на экране загрузкиloadingChatSubtitleColor- цвет подтекста на экране загрузкиloadingChatRepeatButtonTitleFont- шрифт текста кнопки на экране загрузкиloadingChatRepeatButtonTitleColor- цвет текста кнопки на экране загрузкиloadingChatRepeatButtonBackgroundColor- цвет кнопки на экране загрузки
Внешний вид navigationBar
statusBarStyle- стиль статус бара, применяется только при интеграции чата на полный экранdefault: UIStatusBarStyleLightContentnavigationBarVisible- признак, определяет, отображается ли шапка чата (по умолчанию скрыта)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- цвет для даты сообщенийquoteBackgroundColor- цвет фона для цитированного сообщения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- цвет текста во входящем сообщении с цитатойincomingQuoteTimeColor- цвет времени отправки во входящем сообщении с цитатойincomingQuoteFilesizeColor- цвет размера файла во входящем сообщении с цитатойincomingFileIconTintColor- цвет иконки файла во входящем сообщенииincomingFileIconBgColor- фон индикатора загрузки файла во входящем сообщенииincomingMediaTimeColor- цвет времени отправки во входящем сообщении с каincomingBubbleLinkColor- цвет ссылок
Исходящие сообщения
failedBubbleStroked- (BOOL) должен ли фон неотправленного сообщения быть контурнымfailedBubbleColor- цвет фона/контура неотправленного сообщенияoutgoingBubbleStroked- (BOOL) должен ли фон отправленного сообщения быть контурнымoutgoingBubbleColor- цвет фона/контура отправленного сообщенияoutgoingBubbleTextColor- цвет текста отправленного сообщенияoutgoingTimeColor- цвет времени отправки исходящего сообщенияoutgoingPendingStatusColor,outgoingDeliveredStatusColor,outgoingReadStatusColor- цвета иконок статусов отправки сообщенияavatarPlaceholderImage- заглушка для несуществующих аватаровoutgoingQuoteSeparatorColor- цвет разделителя в исходящем сообщении с цитатойoutgoingQuoteAuthorColor- цвет имени автора в исходящем сообщении с цитатойoutgoingQuoteMessageColor- цвет текста цитаты в исходящем сообщенииoutgoingQuoteTimeColor- цвет времени отправки цитированного исходящего сообщения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:UIImageRenderingModeAlwaysTemplateiconStarRatingFull- иконка заполненного рейтинга - передавать как темплейтimageWithRenderingMode:UIImageRenderingModeAlwaysTemplatestarRatingColorEnabled- цвет заполненной иконки рейтинга опросаstarRatingColorDisabled- цвет пустой иконки рейтинга опросаstarRatingColorCompleted- цвет иконки рейтинга завершенного опросаiconLikeEmpty- иконка не выбранного положительного ответа бинарного опроса - передавать как темплейтimageWithRenderingMode:UIImageRenderingModeAlwaysTemplateiconLikeFull- иконка выбранного положительного ответа бинарного опроса - передавать как темплейтimageWithRenderingMode:UIImageRenderingModeAlwaysTemplateiconDislikeEmpty- иконка не выбранного отрицательного ответа бинарного опроса - передавать как темплейтimageWithRenderingMode:UIImageRenderingModeAlwaysTemplateiconDislikeFull- иконка выбранного отрицательного ответа бинарного опроса - передавать как темплейтimageWithRenderingMode:UIImageRenderingModeAlwaysTemplatelikeRatingColorEnabled- цвет выбранной иконки ответа на бинарный опросlikeRatingColorDisabled- цвет не выбранной иконки ответа на бинарный опросlikeRatingColorCompleted- цвет иконки выбранного ответа завершенного бинарного опросаlikeLabelOnStarColor- цвет текста на иконке завершенного опросаlikeLabelUnderStarColor- цвет текста под иконкой завершенного опроса
Быстрые ответы
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