Изображения
Класс ChatImages
предоставляет набор предопределённых изображений и иконок, используемых в интерфейсе чата. Поддерживает как SF Symbols, так и кастомные изображения из бандла приложения.
к сведению
Для упрощения настройки и уменьшения размера SDK, в качестве иконок по-умолчанию используются SF Symbols
Описание
ChatImages
— это базовый класс, предоставляющий унифицированный доступ к различным иконкам и изображениям приложения. Все изображения реализованы через класс ChatImage
, который поддерживает:
- SF Symbols с возможностью указания размера и цвета
- Кастомные изображения из ресурсов SDK
- Унифицированное управление цветом заливки (
tintColor
)
Этот подход обеспечивает консистентность UI и упрощает темизацию.
Доступные изображения
🔍 Поиск
Переменная | Тип | Назначение |
---|---|---|
searchBarImage | SF Symbol | Иконка поиска |
searchNotFoundPlaceholderImage | SF Symbol | Изображение для "ничего не найдено" |
⬅️➡️ Навигация
Переменная | Тип | Назначение |
---|---|---|
backButtonImage | SF Symbol | Иконка кнопки "Назад" |
nextButtonImage | SF Symbol | Иконка кнопки "Вперёд" |
keyboardShowImage | SF Symbol | Показ клавиатуры |
keyboardHideImage | SF Symbol | Скрытие клавиатуры |
✉️ Отправка сообщений
Переменная | Тип | Назначение |
---|---|---|
sendButtonImage | SF Symbol | Отправить сообщение |
attachButtonImage | SF Symbol | Прикрепить файл |
📭 Плейсхолдеры
Переменная | Тип | Назначение |
---|---|---|
emptyChatPlaceholderImage | SF Symbol | Чат пустой |
errorChatPlaceholderImage | SF Symbol | Ошибка загрузки чата |
👍👎 Реакции
Переменная | Тип | Назначение |
---|---|---|
likeEmptyImage | SF Symbol | Неактивный лайк |
likeFullImage | SF Symbol | Активный лайк |
dislikeEmptyImage | SF Symbol | Неактивный дизлайк |
dislikeFullImage | SF Symbol | Активный дизлайк |
⭐ Рейтинг
Переменная | Тип | Назначение |
---|---|---|
starRatingEmptyImage | SF Symbol | Неактивная звезда |
starRatingFullImage | SF Symbol | Активная звезда |
📎 Файлы и медиа
Переменная | Тип | Назначение |
---|---|---|
fileImage | SF Symbol | Файл |
messageBubbleFilledMaskImage | Кастомное | Заполненный пузырь сообщения |
messageBubbleStrokedMaskImage | Кастомное | Обведённый пузырь сообщения |
🔺🔻 Прокрутка
Переменная | Тип | Назначение |
---|---|---|
scrollToTopImage | SF Symbol | Прокрутка наверх |
scrollToBottomImage | SF Symbol | Прокрутка вниз |
👤 Аватары
Переменная | Тип | Назначение |
---|---|---|
avatarPlaceholderImage | SF Symbol | Плейсхолдер аватара |
❌ Меню и действия
Переменная | Тип | Назначение |
---|---|---|
closeButtonImage | SF Symbol | Закрыть |
menuCopyImage | SF Symbol | Скопировать |
menuQuoteImage | SF Symbol | Цитировать |
🗣️ Голосовые сообщения
Переменная | Тип | Назначение |
---|---|---|
voiceButtonImage | SF Symbol | Запись голосового |
voiceSendButtonImage | SF Symbol | Отправка голосового |
voicePlayImage | SF Symbol | Воспроизведение |
voicePauseImage | SF Symbol | Пауза |
✅ Статусы сообщений
Переменная | Тип | Назначение |
---|---|---|
sentStatusImage | Кастомное | Сообщение отправлено |
pendingStatusImage | SF Symbol | Сообщение в процессе |
readStatusImage | Кастомное | Сообщение прочитано |
⚠️ Предупреждения
Переменная | Тип | Назначение |
---|---|---|
alertImage | SF Symbol | Предупреждение |
shieldImage | SF Symbol | Защита |
editImage | SF Symbol | Редактировать |
Класс ChatImage
Класс ChatImage
представляет собой унифицированную обёртку над UIImage
, поддерживающую:
- SF Symbols
- Кастомные изображения
- Настройку цвета (
tintColor
) - Управление размером
Конструкторы
/// Кастомное изображение
init(named: String, tintColor: UIColor? = nil)
/// SF Symbol
init(system name: String, tintColor: UIColor? = nil)
/// SF Symbol с указанием размера
init(system name: String, size: CGFloat = 14, tintColor: UIColor? = 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
}
}