Перейти к основному содержимому
Версия: 5.6.0

Изображения

Класс ChatImages предоставляет набор предопределённых изображений и иконок, используемых в интерфейсе чата. Поддерживает как SF Symbols, так и кастомные изображения из бандла приложения.

к сведению

Для упрощения настройки и уменьшения размера SDK в качестве иконок по умолчанию используются SF Symbols

Описание

ChatImages — это базовый класс, предоставляющий унифицированный доступ к различным иконкам и изображениям приложения. Все изображения реализованы через класс ChatImage, который поддерживает:

  • SF Symbols с возможностью указания размера и цвета
  • Кастомные изображения из ресурсов SDK
  • Унифицированное управление цветом заливки (tintColor)

Этот подход обеспечивает консистентность UI и упрощает темизацию.


Доступные изображения

🔍 Поиск

ПеременнаяТипНазначение
searchButtonImageSF SymbolИконка поиска
searchNotFoundPlaceholderImageSF SymbolИзображение для "ничего не найдено"

⬅️➡️ Навигация

ПеременнаяТипНазначение
backButtonImageSF SymbolИконка кнопки "Назад"
nextButtonImageSF SymbolИконка кнопки "Вперёд"
keyboardShowImageSF SymbolПоказ клавиатуры
keyboardHideImageSF SymbolСкрытие клавиатуры

✉️ Отправка сообщений

ПеременнаяТипНазначение
sendButtonImageSF SymbolОтправить сообщение
attachButtonImageSF SymbolПрикрепить файл

📭 Плейсхолдеры

ПеременнаяТипНазначение
emptyChatPlaceholderImageSF SymbolЧат пустой
errorPlaceholderImageSF SymbolОшибка загрузки чата

👍👎 Реакции

ПеременнаяТипНазначение
likeEmptyImageSF SymbolНеактивный лайк
likeFullImageSF SymbolАктивный лайк
dislikeEmptyImageSF SymbolНеактивный дизлайк
dislikeFullImageSF SymbolАктивный дизлайк

⭐ Рейтинг

ПеременнаяТипНазначение
starRatingEmptyImageSF SymbolНеактивная звезда
starRatingFullImageSF SymbolАктивная звезда

📎 Файлы и медиа

ПеременнаяТипНазначение
fileImageSF SymbolФайл
chatBubbleКастомноеМаска сообщения

🔺🔻 Прокрутка

ПеременнаяТипНазначение
scrollToTopImageSF SymbolПрокрутка наверх
scrollToBottomImageSF SymbolПрокрутка вниз

👤 Аватары

ПеременнаяТипНазначение
avatarPlaceholderImageSF SymbolПлейсхолдер аватара

❌ Меню и действия

ПеременнаяТипНазначение
closeButtonImageSF SymbolЗакрыть
menuCopyImageSF SymbolСкопировать
menuQuoteImageSF SymbolЦитировать

🗣️ Голосовые сообщения

ПеременнаяТипНазначение
voiceButtonImageSF SymbolЗапись голосового
voiceSendButtonImageSF SymbolОтправка голосового
voicePlayImageSF SymbolВоспроизведение
voicePauseImageSF SymbolПауза

✅ Статусы сообщений

ПеременнаяТипНазначение
sentStatusImageКастомноеСообщение отправлено
pendingStatusImageSF SymbolСообщение в процессе
readStatusImageКастомноеСообщение прочитано

⚠️ Предупреждения

ПеременнаяТипНазначение
alertImageSF SymbolПредупреждение
shieldImageSF SymbolЗащита
editImageSF SymbolРедактировать

⚠️ Ошибки и уведомления

ПеременнаяТипНазначение
errorInfoImageSF SymbolИконка информации об ошибке
errorAlertImageSF SymbolИконка предупреждения об ошибке
errorShieldImageSF SymbolИконка ошибки типа файла
editImageSF SymbolИконка редактирования
scheduleImageSF SymbolИконка расписания/нерабочего времени

Класс ChatImage

Класс ChatImage представляет собой унифицированную обёртку над UIImage, поддерживающую:

  • SF Symbols
  • Кастомные изображения
  • Настройку цвета (tintColor)
  • Управление размером

Конструкторы

/// SF Symbol
init(system name: String, tintColor: UIColor? = nil, renderingMode: UIImage.RenderingMode? = nil)

/// SF Symbol с указанием размера
init(system name: String, size: CGFloat = 14, tintColor: UIColor? = nil)

/// Кастомное изображение (для него нужно укзаать бандл, в котором оно хранится)
init(named: String,
bundle: Bundle = Bundle(for: ChatImage.self)
tintColor: UIColor? = nil,
renderingMode: UIImage.RenderingMode? = nil)

Пример использования

Актуальный пример можно найти в демо приложении в MainViewController+Themes

import ChatCenterUI

/// Настройки тем оформления
extension MainViewController {
func makeDarkTheme() -> ChatTheme {
return ChatTheme(images: darkImages)
}

private var darkImages: ChatImages {
let images = ChatImages()
images.avatarPlaceholderImage = ChatImage(system: "person.circle.fill", tintColor: UIColor.white)
return images
}
}