Files
featherVoice/TUIKit/TUIChat/UI_Classic/Chat/TUIMessageCellConfig.h
2025-08-08 10:49:36 +08:00

107 lines
3.0 KiB
Objective-C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Created by Tencent on 2023/07/20.
// Copyright © 2023 Tencent. All rights reserved.
#import <UIKit/UIKit.h>
@class TUIMessageCellData;
typedef NSString * TUICellDataClassName;
typedef NSString * TUICellClassName;
typedef NSString * TUIBusinessID;
NS_ASSUME_NONNULL_BEGIN
@interface TUIMessageCellConfig : NSObject
/**
* 1.
* Bind the message tableView, and TUIMessageCellConfig will perform built-in and customized cell bindings for the tableView internally.
*/
- (void)bindTableView:(UITableView *)tableView;
/**
* 2.
* Bind cell and cellData to the tableView, and the binding can be called externally.
*/
- (void)bindMessageCellClass:(Class)cellClass cellDataClass:(Class)cellDataClass reuseID:(NSString *)reuseID;
@end
@interface TUIMessageCellConfig (MessageCellWidth)
+ (void)setMaxTextSize:(CGSize)maxTextSz;
@end
@interface TUIMessageCellConfig (MessageCellHeight)
/**
* Get key of cache
*/
- (NSString *)getHeightCacheKey:(TUIMessageCellData *)msg;
/**
* Get the height, and the cache will be queried first.
*
*/
- (CGFloat)getHeightFromMessageCellData:(TUIMessageCellData *)cellData;
/**
* Get the estimated height, and the cache will be queried first.
*/
- (CGFloat)getEstimatedHeightFromMessageCellData:(TUIMessageCellData *)cellData;
/**
* Remove cache
*/
- (void)removeHeightCacheOfMessageCellData:(TUIMessageCellData *)cellData;
@end
@interface TUIMessageCellConfig (CustomMessageRegister)
/**
* Register custom message
*
* @param messageCellName cell
* @param messageCellDataName cellData
* @param businessID
*/
+ (void)registerCustomMessageCell:(TUICellClassName)messageCellName
messageCellData:(TUICellDataClassName)messageCellDataName
forBusinessID:(TUIBusinessID)businessID;
/**
* Register custom message This is for internal use of TUIKit plugin, please use registerCustomMessageCell:messageCellData:forBusinessID: instead.
*
* @param messageCellName (custom message cell name)
* @param messageCellDataName (custom message cell data)
* @param businessID (custom message businessID)
* @param isPlugin (From Plugin)
*/
+ (void)registerCustomMessageCell:(TUICellClassName)messageCellName
messageCellData:(TUICellDataClassName)messageCellDataName
forBusinessID:(TUIBusinessID)businessID
isPlugin:(BOOL)isPlugin;
/**
* Get all custom message UI with enumeration
*/
+ (void)enumerateCustomMessageInfo:(void(^)(NSString *messageCellName,
NSString *messageCellDataName,
NSString *businessID,
BOOL isPlugin))callback;
/**
* Get the class of custom message cellData based on businessID
*/
+ (nullable Class)getCustomMessageCellDataClass:(NSString *)businessID;
/**
* Whether the custom message cell data is defined in plugin
*/
+ (BOOL)isPluginCustomMessageCellData:(TUIMessageCellData *)data;
@end
NS_ASSUME_NONNULL_END