会话列表
下文将向您展示如何设置会话列表界面自定义选项及其效果。
设置会话列表、cell 背景色
API 作用:设置会话列表、cell、置顶 cell 的背景色。
API 原型:
// TUIConversationConfig.swift/*** Background color of conversation list.*/public var listBackgroundColor: UIColor?/*** Background color of cell in conversation list.* This configuration takes effect in all cells.*/public var cellBackgroundColor: UIColor?/*** Background color of pinned cell in conversation list.* This configuration takes effect in all pinned cells.*/public var pinnedCellBackgroundColor: UIColor?
// TUIConversationConfig.h/*** Background color of conversation list.*/@property (nonatomic, strong) UIColor *listBackgroundColor;/*** Background color of cell in conversation list.* This configuration takes effect in all cells.*/@property (nonatomic, strong) UIColor *cellBackgroundColor;/*** Background color of pinned cell in conversation list.* This configuration takes effect in all pinned cells.*/@property (nonatomic, strong) UIColor *pinnedCellBackgroundColor;
示例代码:
// When to call: Before initializing conversation list.TUIConversationConfig.shared.listBackgroundColor = UIColor.tui_color(withHex: "#FFFFF0")TUIConversationConfig.shared.cellBackgroundColor = UIColor.tui_color(withHex: "#F0FFF0")TUIConversationConfig.shared.pinnedCellBackgroundColor = UIColor.tui_color(withHex: "#E1FFFF")
// When to call: Before initializing conversation list.[TUIConversationConfig sharedConfig].listBackgroundColor = [UIColor tui_colorWithHex:@"#FFFFF0"];[TUIConversationConfig sharedConfig].cellBackgroundColor = [UIColor tui_colorWithHex:@"#F0FFF0"];[TUIConversationConfig sharedConfig].pinnedCellBackgroundColor = [UIColor tui_colorWithHex:@"#E1FFFF"];
设置效果:
设置背景色 | 默认 |
![]() | ![]() |
设置会话列表 cell 字体
API 作用:设置会话列表 cell 上的标题、副标题、时间文字的字体。针对所有 cell 生效。
API 原型:
// TUIConversationConfig.swift/*** Font of title label of cell in conversation list.* This configuration takes effect in all cells.*/public var cellTitleLabelFont: UIFont?/*** Font of subtitle label of cell in conversation list.* This configuration takes effect in all cells.*/public var cellSubtitleLabelFont: UIFont?/*** Font of time label of cell in conversation list.* This configuration takes effect in all cells.*/public var cellTimeLabelFont: UIFont?
// TUIConversationConfig.h/*** Font of title label of cell in conversation list.* This configuration takes effect in all cells.*/@property (nonatomic, strong) UIFont *cellTitleLabelFont;/*** Font of subtitle label of cell in conversation list.* This configuration takes effect in all cells.*/@property (nonatomic, strong) UIFont *cellSubtitleLabelFont;/*** Font of time label of cell in conversation list.* This configuration takes effect in all cells.*/@property (nonatomic, strong) UIFont *cellTimeLabelFont;
示例代码:
// When to call: Before initializing conversation list.TUIConversationConfig.shared.cellTitleLabelFont = UIFont.systemFont(ofSize: 18)TUIConversationConfig.shared.cellSubtitleLabelFont = UIFont.systemFont(ofSize: 14)TUIConversationConfig.shared.cellTimeLabelFont = UIFont.systemFont(ofSize: 16)
// When to call: Before initializing conversation list.[TUIConversationConfig sharedConfig].cellTitleLabelFont = [UIFont systemFontOfSize:18];[TUIConversationConfig sharedConfig].cellSubtitleLabelFont = [UIFont systemFontOfSize:14];[TUIConversationConfig sharedConfig].cellTimeLabelFont = [UIFont systemFontOfSize:16];
设置效果:
设置字体 | 默认 |
![]() | ![]() |
展示未读红点
API 作用:展示 cell 上的未读消息红点 icon。针对所有 cell 生效。
API 原型:
// TUIConversationConfig.swift/*** Display unread count icon in each conversation cell.* The default value is YES.*/public var showCellUnreadCount: Bool = true
// TUIConversationConfig.h/*** Display unread count icon in each conversation cell.* The default value is YES.*/@property(nonatomic, assign) BOOL showCellUnreadCount;
示例代码:
// When to call: Before initializing conversation list.TUIConversationConfig.shared.showCellUnreadCount = false
// When to call: Before initializing conversation list.[TUIConversationConfig sharedConfig].showCellUnreadCount = NO;
设置效果:
不展示会话 cell 上的未读红点 | 默认 |
![]() | ![]() |
展示在线状态
API 作用:展示 cell 里用户头像上的在线状态 icon。针对所有 cell 生效。
API 原型:
// TUIConversationConfig.swift/*** Display user's online status icon in conversation and contact list.* The default value is NO.*/public var showUserOnlineStatusIcon: Bool {get {return TUIConfig.default().displayOnlineStatusIcon}set {TUIConfig.default().displayOnlineStatusIcon = newValue}}
// TUIConversationConfig.h/*** Display user's online status icon in conversation and contact list.* The default value is NO.*/@property(nonatomic, assign) BOOL showUserOnlineStatusIcon;
示例代码:
// When to call: Before initializing conversation list.TUIConversationConfig.shared.showUserOnlineStatusIcon = false
// When to call: Before initializing conversation list.[TUIConversationConfig sharedConfig].showUserOnlineStatusIcon = YES;
设置效果:
展示在线状态 | 默认 |
![]() | ![]() |
会话更多菜单选项自定义
API 作用:隐藏会话更多菜单选项、向会话更多菜单添加选项。针对指定会话生效。
API 原型:
// TUIConversationConfig.swiftpublic protocol TUIConversationConfigDataSource: AnyObject {/*** Implement this method to hide items in more menu.*/func conversationShouldHideItemsInMoreMenu(_ data: TUIConversationCellData) -> TUIConversationItemInMoreMenu/*** Implement this method to add new items.*/func conversationShouldAddNewItemsToMoreMenu(_ data: TUIConversationCellData) -> [Any]}
// TUIConversationConfig.h@protocol TUIConversationConfigDataSource <NSObject>/*** Implement this method to hide items in more menu.*/- (NSInteger)conversationShouldHideItemsInMoreMenu:(TUIConversationCellData *)data;/*** Implement this method to add new items.*/- (NSArray *)conversationShouldAddNewItemsToMoreMenu:(TUIConversationCellData *)data;@end
示例代码:
// When to call: Before initializing conversation list.TUIConversationConfig.shared.moreMenuDataSource = selffunc conversationShouldHideItemsInMoreMenu(_ data: TUIConversationCellData) -> TUIConversationItemInMoreMenu {if let groupID = data.groupID, !groupID.isEmpty {return [.Hide, .Pin]}return [.None]}func conversationShouldAddNewItemsToMoreMenu(_ data: TUIConversationCellData) -> [Any] {if let groupID = data.groupID, !groupID.isEmpty {let action1 = UIAlertAction.init(title: "action1", style: .default) { _ inprint("action1 is clicked")}let action2 = UIAlertAction.init(title: "action2", style: .default) { _ inprint("action2 is clicked")}return [action1, action2]}return []}
// When to call: Before initializing conversation list.[TUIConversationConfig sharedConfig].moreMenuDataSource = self;- (NSInteger)conversationShouldHideItemsInMoreMenu:(TUIConversationCellData *)data {if (data.groupID != nil) {return TUIConversationItemInMoreMenu_Hide | TUIConversationItemInMoreMenu_Pin;}return 0;}- (NSArray *)conversationShouldAddNewItemsToMoreMenu:(TUIConversationCellData *)data {if (data.groupID != nil) {UIAlertAction *action1 = [UIAlertAction actionWithTitle:@"action1"style:UIAlertActionStyleDefaulthandler:^(UIAlertAction *_Nonnull action) {NSLog(@"action1 is clicked");}];UIAlertAction *action2 = [UIAlertAction actionWithTitle:@"action2"style:UIAlertActionStyleDefaulthandler:^(UIAlertAction *_Nonnull action) {NSLog(@"action2 is clicked");}];return @[action1, action2];}return nil;}
设置效果:
隐藏、添加选项 | 默认 |
![]() | ![]() |