-
Notifications
You must be signed in to change notification settings - Fork 2.8k
TUIKit iOS修改界面样式
whalehe edited this page Jun 14, 2019
·
3 revisions
TUIKit
的界面在显示用户时,会从用户资料中读取头像地址并显示。如果用户没有设置头像,则显示默认头像。
如果您不想使用以上图片,可以自行设置头像
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
会有回调事件通知上层。
用户点击默认菜单时,也会有回调通知,但是您可以不用处理。