TUIConversation

The following will show you how to customize the UI components in conversation List.

Set the conversation list cell background color

API Functionality: Set the conversation list cell and pinned cell background color.
API prototype:
// 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;
Sample code:
// 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"];
Result:
Set Background Color
Default







Set the conversation list cell font

API Functionality: Set the font of the title, subtitle, and time text on the conversation list cells. Applies to all cells.
API prototype:
// 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;
Sample code:
// 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];
Result:
Set Font
Default







Show unread red dot

API Functionality: Display the unread message red dot icon on the cell. Applies to all cells.
API prototype:
// TUIConversationConfig.h
/**
* Display unread count icon in each conversation cell.
* The default value is YES.
*/
@property(nonatomic, assign) BOOL showCellUnreadCount;
Sample code:
// When to call: Before initializing conversation list.
[TUIConversationConfig sharedConfig].showCellUnreadCount = NO;
Result:
Do not display the unread red dot on the conversation cell
Default







Show online status

API Functionality: Display an online status icon on the user's avatar in the cell. Applies to all cells.
API prototype:
// TUIConversationConfig.h
/**
* Display user's online status icon in conversation and contact list.
* The default value is NO.
*/
@property(nonatomic, assign) BOOL showUserOnlineStatusIcon;
Sample code:
// When to call: Before initializing conversation list.
[TUIConversationConfig sharedConfig].showUserOnlineStatusIcon = YES;
Result:
Show online status
Default







Customize the more menu options

API Functionality: Hide more menu options for the conversation and add options to the more menu for the conversation. Applies to specified conversations.
API prototype:
// 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
Sample code:
// 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:UIAlertActionStyleDefault
handler:^(UIAlertAction *_Nonnull action) {
NSLog(@"action1 is clicked");
}];
UIAlertAction *action2 = [UIAlertAction actionWithTitle:@"action2"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *_Nonnull action) {
NSLog(@"action2 is clicked");
}];
return @[action1, action2];
}
return nil;
}
Result:
Hide and Add Options
Default