Skip to content

TUIKit iOS修改界面样式

whalehe edited this page Jun 14, 2019 · 3 revisions

iOS

头像修改

默认头像图片

TUIKit 的界面在显示用户时,会从用户资料中读取头像地址并显示。如果用户没有设置头像,则显示默认头像。
default_group@2x.png    default_head@2x.png
如果您不想使用以上图片,可以自行设置头像

TUIKitConfig *config = [TUIKitConfig defaultConfig]; 
// 修改默认头像
config.defaultAvatarImage = [UIImage imageNamed:@"Your Image"];
// 修改默认群组头像
config.defaultGroupAvatarImage = [UIImage imageNamed:@"Your Image"];

头像类型

头像类型提供三种可选类型

typedef NS_ENUM(NSInteger, TUIKitAvatarType) {
    TAvatarTypeNone,             /*矩形直角头像*/
    TAvatarTypeRounded,          /*圆形头像*/
    TAvatarTypeRadiusCorner,     /*圆角头像*/
};

默认头像为矩形直角类型,修改头像类型的方式与修改默认头像图片类似。示例代码:

TUIKitConfig *config = [TUIKitConfig defaultConfig]; 
// 修改头像类型为圆角矩形,圆角大小为5
config.avatarType = TAvatarTypeRadiusCorner;
config.avatarCornerRadius = 5.f;

聊天界面配置

配置聊天界面前,了解一下聊天界面 view 的组合方式很有必要。


聊天页面主要由 `UITableView` 搭建完成,每一条消息是一个 `TUIMessageCell` 对象。 `TUIMessageCellData` 提供消息显示需要的各种数据。因此修改 CellData 就可以改变 MessageCell 的显示样式。 ### ### 聊天背景设置 聊天界面的实现类是 `TUIMessageController` , 可以通过 `TUIChatController` 的 `messageController` 属性访问到。由于 `TUIMessageController` 是标准的ViewController,所以可以使用iOS系统的标准方法设置背景色。
TUIChatController *vc = ...; // 获取聊天窗口对象
vc.messageController.view.backgroundColor = [UIColor greenColor];

显示效果

消息配置

气泡图片

气泡Cell显示的图片从 TUIBubbleMessageCellData 获取,该对象提供了类方法可以设置图片。

// 设置发送气泡,包括普通状态和选中状态;设置接收的方法类似
[TUIBubbleMessageCellData setOutgoingBubble:[UIImage imageNamed:@"bubble"]];
[TUIBubbleMessageCellData setOutgoingHighlightedBubble:[UIImage imageNamed:@"bubble_highlight"]];

气泡边距

TUIKit 中,文字和声音都会用到气泡显示。 TUIMessageCellLayout 提供了类方法设置 bubbleInsets。

// 设置发送气泡边距;设置接收的方法类似
[TUIMessageCellLayout outgoingTextMessageLayout].bubbleInsets = UIEdgeInsetsMake(10, 10, 20, 20);

消息字体和颜色

文字消息的数据来自于 TUITextMessageCellData 类,通过它的接口可以修改文字消息的字体和颜色。

// 设置发送文字消息的字体和颜色;设置接收的方法类似
[TUITextMessageCellData setOutgoingTextFont:[UIFont systemFontOfSize:20]];
[TUITextMessageCellData setOutgoingTextColor:[UIColor redColor]];

头像配置

头像是所有消息都有的内容,且属于 layout 配置,因此修改 TUIMessageCellLayout 可以改变所有消息的头像样式。

头像大小

// 设置发送头像大小;设置接收的方法类似
[TUIMessageCellLayout outgoingMessageLayout].avatarSize = CGSizeMake(100, 100);

头像位置

// 设置发送位置;设置接收的方法类似
[TUIMessageCellLayout outgoingMessageLayout].avatarInsets = UIEdgeInsetsMake(10, 10, 20, 20);

昵称配置

昵称字体和颜色

昵称位置和头像位置设置是方法类似,也是修改 TUIMessageCellLayout 的相关属性。

// 设置接收消息的昵称字体;设置发送的方法类似,但默认情况下不显示发送方的昵称
[TUIMessageCellData setIncommingNameFont:[UIFont systemFontOfSize:20]];
[TUIMessageCellData setOutgoingTextColor:[UIColor redColor]];

输入框配置

更多菜单配置

点击输入框的"+"按钮,会打开更多面板。默认情况下,有4个可选项。更多菜单的配置是通 TUIChatController 的 moreMenus 属性控制。
以删除文件菜单为例,示例代码:

TUIChatController *vc = [[TUIChatController alloc] initWithConversation:conv];
NSMutableArray *array = [NSMutableArray arrayWithArray:vc.moreMenus]; 
[array removeLastObject]; // 删除最后一个菜单
vc.moreMenus = array; // 重新设置属性,立即生效

当用户点击菜单里面的按钮, TUIChatController 会有回调事件通知上层。

用户点击默认菜单时,也会有回调通知,但是您可以不用处理。