Страница | Позиция | Параметры кастомизации | Метод кастомизации |
---|---|---|---|
Глобально | Верхнее меню | Цвет фона, цвет текста и другие стили | Системные API |
Глобально | TableView | Линии раздела, цвет фона, цвет текста ячеек, цвет фона ячеек и другие | 【plist】TableView-XXX ChatKit-Theme. plist в MessageBubble. bundle или ChatKit-Theme. plist в Other. bundle, и т. д. |
Глобально | Основные процессы (чат, список диалогов и связанные страницы) | Поддержка интернационализации | Создайте кастомизированный Other. bundle CustomizedChatKit. Other. bundle и измените или добавьте соответствующие файлы локализации |
Глобально | Стиль аватара | Круглость аватара | -[LCChatKit setAvatarImageViewCornerRadiusBlock:] |
Глобально | Обработка событий | Предварительный просмотр изображения | -[LCChatKit setPreviewImageMessageBlock:] |
Глобально | Обработка событий | Нажатие на аватар | -[LCChatKit setOpenProfileBlock:] |
Глобально | Обработка событий | Подсказки | -[LCChatKit setShowNotificationBlock:] |
Список диалогов | Непрочитанные сообщения | Цвет текста, цвет фона | 【plist】ConversationList-UnreadText, ConversationList-UnreadBackground |
Страница чата | Фон чата | Замена изображения | Если нужно изменить стандартное изображение, замените Other. bundle conversationViewController_default_backgroundImage. png , для конкретного диалога используйте методы: -[LCChatKit setCurrentConversationBackgroundImage:scaledToSize:] или -[LCChatKit setBackgroundImage:forConversationId:scaledToSize:]
|
Страница чата | Область ввода | Цвет темы | 【plist】MessageInputView-Tint-ColorСтраница чата |
Страница чата | Область ввода | Поле ввода | 【plist】MessageInputView-TextField-TextColor, MessageInputView-TextField-BackgroundColor |
Страница чата | Область ввода | Кнопка записи | 【plist】MessageInputView-Record-TextColor, MessageInputView-RecordView-BackgroundColor |
Страница чата | Область ввода | Область "ещё" | 【plist】MessageInputView-MorePanel-BackgroundColor, MessageInputView-MorePanel-TextColor |
Страница чата | Область ввода | Элементы области "ещё" | См. класс LCCKInputViewPluginVCard
|
Страница чата | Область ввода | Кастомизированные эмодзи | Замена Emoji. ресурсы изображений в bundle и plist файлы |
Страница чата | Пользовательские сообщения | Пользовательские сообщения | См. класс LCCKVCardMessage , а также класс LCCKInputViewPluginVCard
|
Страница чата | Отображение сообщений | Цвет текста слева и справа | [plist] ConversationView-Message-Left-TextColor, ConversationView-Message-Right-TextColor, |
Страница чата | Отображение сообщений | Цвет ссылок | [plist] ConversationView-Message-LinkColor, ConversationView-Message-LinkColor-Left, ConversationView-Message-LinkColor-Right |
Страница чата | Отображение сообщений | Цвет текста имени отправителя | [plist] ConversationView-SenderName-TextColor |
Страница чата | Отображение сообщений | Цвет текста разделителя времени | [plist] ConversationView-TimeLine-TextColor |
Страница чата | Стили пузырьков | Фоновые изображения пузырьков и т. д. | MessageBubble. bundle включает MessageBubble-Customize. plist, подробнее см. ниже в разделе о пузырьках сообщенийПримечание: **В таблице выше [plist] относится к файлам MessageBubble-Customize. plist или ChatKit-Theme.**plist, которые находятся в ресурсных пакетах MessageBubble.bundle и Other.bundle соответственно.Примечание: Все указанные выше точки отсчета можно найти в демонстрационном проекте. |
Вы можете найти пакеты ресурсов по следующему пути, и внести изменения в изображения и конфигурационные файлы, которые напрямую повлияют на пользовательский интерфейс:
├── ChatKit # Корневая директория основной библиотеки
│ └── Class
│ ├── Model
│ ├── Module
│ ├── Resources # Пакеты ресурсов UI
│ ├── Tool
└── ChatKit-OC # Демонстрационный проект
Примечание: Однако мы настоятельно рекомендуем не изменять этот пакет напрямую, так как это затруднит обновление ChatKit при необходимости. Рекомендуется использовать метод создания пользовательского пакета тематики.
Примечание: **Для удобства обновления ChatKit настоятельно рекомендуется использовать пользовательские пакеты ресурсов. При создании пользовательских ресурсных файлов достаточно скопировать соответствующий пакет, соблюдая правила названия, без необходимости настройки в коде. ChatKit разделяет ресурсы на несколько пакетов, поэтому при создании пользовательского пакета достаточно включить только те пакеты, которые требуются. Например, если вам нужно только настроить пузырьки сообщений, вам потребуется выполнить следующие шаги:**1. Скопируйте пакет MessageBubble.bundle из ChatKit на ваш компьютер, например, на рабочий стол. 2. Измените соответствующие ресурсы в этом пакете на рабочем столе. 3. Переименуйте измененный пакет в CustomizedChatKit.MessageBubble.bundle (важно: убедитесь, что название файла и количество файлов остаются неизменными). 4. Переместите CustomizedChatKit.MessageBubble.bundle в ваш проект (важно: переместите его в свой проект, а не в ChatKit).
ChatKit предоставляет пакеты ресурсов по умолчанию. Если вы хотите создать пользовательский пакет, вам необходимо добавить префикс CustomizedChatKit.
перед соответствующим ресурсным пакетом, а затем переместить его в свой проект. Вот подробное соответствие:
CustomizedChatKit.MessageBubble.bundle
CustomizedChatKit.Other.bundle
Проект | По умолчанию | Пользовательское имя | Тип ресурса |
---|---|---|---|
Чат-пузырь | MessageBubble.bundle | CustomizedChatKit.MessageBubble.bundle | Изображение |
Клавиатура для поля ввода чата | ChatKeyboard.bundle | CustomizedChatKit.ChatKeyboard.bundle | Изображение |
Эмодзи | Emoji.bundle | CustomizedChatKit.Emoji.bundle | Изображение, plist-файл описания |
Запасное изображение | Placeholder.bundle | CustomizedChatKit.Placeholder.bundle | Изображение |
Звуковые сообщения | VoiceMessageSource.bundle | CustomizedChatKit.VoiceMessageSource.bundle | Звук |
Иконки навигационной панели | BarButtonIcon.bundle | CustomizedChatKit.BarButtonIcon.bundle | Изображение |
Прочее | Other.bundle | CustomizedChatKit.Other.bundle | Любое тип |
Влияет на большинство TableView, кроме страницы чата, например, список последних диалогов:
Ключ | Область изменения |
---|---|
TableView-SeparatorColor | Цвет разделителя |
TableView-BackgroundColor | Цвет фона |
TableView-PullRefresh-TextColor | Цвет текста для элемента "Пулл ресет" |
TableView-PullRefresh-BackgroundColor | Цвет фона для элемента "Пулл ресет" |
Ключ | Область изменения |
---|---|
TableView-CellTitle | Цвет текста заголовка |
TableView-CellMinor | Цвет текста дополнительной информации |
TableView-CellDetail | Цвет текста содержимого |
TableView-CellBackgroundColor | Цвет фона |
TableView-CellBackgroundColor_Highlighted | Цвет выделенного фона |
Ключ | Область изменения |
---|---|
ConversationList-UnreadText | Цвет текста непрочитанных сообщений в списке диалогов |
ConversationList-UnreadBackground | Цвет фона непрочитанных сообщений в списке диалогов |
conversationViewController_default_backgroundImage.png
в пакете Other.bundle. Если вы хотите изменить фон для определенного диалога, вам нужно использовать следующие методы: -[LCChatKit setCurrentConversationBackgroundImage:scaledToSize:]
или -[LCChatKit setBackgroundImage:forConversationId:scaledToSize:]
.Стандартное изображение фона | Изменение файла пакета для изменения фона для всех диалогов | Изменение фона для определенного диалога с помощью кода-------------|-------------|-------------
|
|
![]() |
Изменяемая область |
---|---|
MessageInputView-BackgroundColor | Цвет фона области ввода сообщения |
MessageInputView-MorePanel-TextColor | Цвет текста в панели "Больше" области ввода сообщения |
MessageInputView-MorePanel-BackgroundColor | Цвет фона панели "Больше" области ввода сообщения |
MessageInputView-TextField-TextColor | Цвет текста в поле ввода сообщения |
MessageInputView-TextField-BackgroundColor | Цвет фона поля ввода сообщения |
MessageInputView-Record-TextColor | Цвет текста кнопки записи сообщения |
MessageInputView-Tint-Color | Цвет темы области ввода сообщения, если этот параметр отсутствует, используется глобальный цвет темы |
![]() |
Изменяемая область |
---|---|
ConversationView-Message-Left-TextColor | Цвет текста левого сообщения |
ConversationView-Message-Right-TextColor | Цвет текста правого сообщения |
ConversationView-Message-LinkColor | Цвет текста ссылки в сообщении |
ConversationView-Message-LinkColor-Left | Цвет текста ссылки в левом сообщении; если этот параметр отсутствует, используется общий цвет текста ссылки |
ConversationView-Message-LinkColor-Right | Цвет текста ссылки в правом сообщении; если этот параметр отсутствует, используется общий цвет текста ссылки |
ConversationView-SenderName-TextColor | Цвет текста имени отправителя |
ConversationView-TimeLine-TextColor | Цвет текста временной линии |
ConversationView-TimeLine-BackgroundColor | Цвет фона временной линии### Пузырьки сообщений |
Файлы ресурсов
ChatKit предоставляет настройку внешнего вида пузырьков сообщений. Вы можете найти файл MessageBubble-Customize.plist в пакете ресурсов MessageBubble.bundle:
Настройки стиля пузырьков сообщений:
key | Стиль обычных пузырьков (текст, голосовые сообщения и т.д.) |
---|---|
CommonLeft | Стиль левого пузырька |
CommonRight | Стиль правого пузырька |
key | Стиль пузырьков с прозрачным центром (изображения, географические данные и т.д.) |
---|---|
HollowLeft | Стиль левого пузырька |
HollowRight | Стиль правого пузырька |
В этих файлах есть несколько ключевых полей:
cap_insets: Устанавливает область растяжения фона пузырька:
Параметры растяжения 9-квадратного изображения top, left, bottom, right имеют следующее значение:
Чтобы достичь следующего эффекта растяжения:
edge_insets: Расстояние между фоновой областью пузырька (красный) и областью содержимого (белый):
-setViewDidLoadBlock:
, -setViewWillAppearBlock:
, -setViewDidAppearBlock:
, -setViewWillDisappearBlock:
и -setViewDidDisappearBlock:
для вызова соответствующих системных API, чтобы управлять статусной строкой, навигационной строкой, Tabbar и т.д.Примеры: [conversationViewController setViewWillAppearBlock:^(LCCKBaseViewController *viewController, BOOL aAnimated) {
[viewController.navigationController setNavigationBarHidden:NO animated:aAnimated];
}];
[conversationViewController setViewWillAppearBlock:^(LCCKBaseViewController *viewController, BOOL aAnimated) {
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:aAnimated];
}];
В LCCKConversationListViewController в блоке setViewDidLoadBlock:
можно изменить заголовок навигационной строки.
LCCKConversationListViewController *firstViewController = [[LCCKConversationListViewController alloc] init];
[firstViewController setViewDidLoadBlock:^(LCCKBaseViewController *viewController) {
viewController.navigationItem.title = @"Сообщения";
}];
Необходимо отключить автоматическую настройку заголовка.
По умолчанию настроено следующее:
name
в conversation
LCCKConversationViewController *conversationViewController = [[LCCKConversationViewController alloc] initWithConversationId:conversationId];
conversationViewController.disableTitleAutoConfig = YES;
[conversationViewController setViewDidLoadBlock:^(LCCKBaseViewController *viewController) {
viewController.navigationItem.title = @"Сообщение";
}];
Можно настроить закругленный край аватара следующим образом, поддерживается круглый аватар:```Objective-C [[LCChatKit sharedInstance] setAvatarImageViewCornerRadiusBlock:^CGFloat(CGSize avatarImageViewSize) { if (avatarImageViewSize.height > 0) { return avatarImageViewSize.height / 2; } return 5; }];
Уведомления
```Objective-C
[[LCChatKit sharedInstance] setShowNotificationBlock:^(UIViewController *viewController, NSString *title, NSString *subtitle, LCCKMessageNotificationType type) {
[self exampleShowNotificationWithTitle:title subtitle:subtitle type:type];
}];
HUD
[[LCChatKit sharedInstance] setHUDActionBlock:^(UIViewController *viewController, UIView *view, NSString *title, LCCKMessageHUDActionType type) {
switch (type) {
case LCCKMessageHUDActionTypeShow:
[[self class] lcck_showMessage:title toView:view];
break;
case LCCKMessageHUDActionTypeHide:
[[self class] lcck_hideHUDForView:view];
break;
case LCCKMessageHUDActionTypeError:
[[self class] lcck_showError:title toView:view];
break;
case LCCKMessageHUDActionTypeSuccess:
[[self class] lcck_showSuccess:title toView:view];
break;
}
}];
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )