You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

171 lines
3.6 KiB

//
// XHMessageInputView.h
// MessageDisplayExample
//
// Created by HUAJIE-1 on 14-4-24.
// Copyright (c) 2014年 嗨,我是曾宪华(@xhzengAIB),曾加入YY Inc.担任高级移动开发工程师,拍立秀App联合创始人,热衷于简洁、而富有理性的事物 QQ:543413507 主页:http://zengxianhua.com All rights reserved.
//
#import <UIKit/UIKit.h>
#import "XHMessageTextView.h"
typedef NS_ENUM(NSInteger, XHMessageInputViewStyle) {
// iOS7样式的
XHMessageInputViewStyleFlat
};
@protocol XHMessageInputViewDelegate <NSObject>
@required
/**
* 输入框刚好开始编辑
*
* @param messageInputTextView 输入框对象
*/
- (void)inputTextViewDidBeginEditing:(XHMessageTextView *)messageInputTextView;
/**
* 输入框将要开始编辑
*
* @param messageInputTextView 输入框对象
*/
- (void)inputTextViewWillBeginEditing:(XHMessageTextView *)messageInputTextView;
@optional
/**
* 在发送文本和语音之间发送改变时,会触发这个回调函数
*
* @param changed 是否改为发送语音状态
*/
- (void)didChangeSendVoiceAction:(BOOL)changed;
/**
* 发送文本消息,包括系统的表情
*
* @param text 目标文本消息
*/
- (void)didSendTextAction:(NSString *)text;
/**
* 点击+号按钮Action
*/
- (void)didSelectedMultipleMediaAction;
/**
* 按下錄音按鈕 "準備" 錄音
*/
- (void)prepareRecordingVoiceActionWithCompletion:(BOOL (^)(void))completion;
/**
* 开始录音
*/
- (void)didStartRecordingVoiceAction;
/**
* 手指向上滑动取消录音
*/
- (void)didCancelRecordingVoiceAction;
/**
* 松开手指完成录音
*/
- (void)didFinishRecoingVoiceAction;
/**
* 当手指离开按钮的范围内时,主要为了通知外部的HUD
*/
- (void)didDragOutsideAction;
/**
* 当手指再次进入按钮的范围内时,主要也是为了通知外部的HUD
*/
- (void)didDragInsideAction;
/**
* 发送第三方表情
*
* @param facePath 目标表情的本地路径
*/
- (void)didSendFaceAction:(BOOL)sendFace;
@end
@interface XHMessageInputView : UIImageView
@property (nonatomic, weak) id <XHMessageInputViewDelegate> delegate;
/**
* 用于输入文本消息的输入框
*/
@property (nonatomic, weak, readonly) XHMessageTextView *inputTextView;
/**
* 当前输入工具条的样式
*/
@property (nonatomic, assign) XHMessageInputViewStyle messageInputViewStyle; // default is XHMessageInputViewStyleFlat
/**
* 是否允许发送语音
*/
@property (nonatomic, assign) BOOL allowsSendVoice; // default is YES
/**
* 是否允许发送多媒体
*/
@property (nonatomic, assign) BOOL allowsSendMultiMedia; // default is YES
/**
* 是否支持发送表情
*/
@property (nonatomic, assign) BOOL allowsSendFace; // default is YES
/**
* 切换文本和语音的按钮
*/
@property (nonatomic, weak, readonly) UIButton *voiceChangeButton;
/**
* +号按钮
*/
@property (nonatomic, weak, readonly) UIButton *multiMediaSendButton;
/**
* 第三方表情按钮
*/
@property (nonatomic, weak, readonly) UIButton *faceSendButton;
/**
* 语音录制按钮
*/
@property (nonatomic, weak, readonly) UIButton *holdDownButton;
#pragma mark - Message input view
/**
* 动态改变高度
*
* @param changeInHeight 目标变化的高度
*/
- (void)adjustTextViewHeightBy:(CGFloat)changeInHeight;
/**
* 获取输入框内容字体行高
*
* @return 返回行高
*/
+ (CGFloat)textViewLineHeight;
/**
* 获取最大行数
*
* @return 返回最大行数
*/
+ (CGFloat)maxLines;
/**
* 获取根据最大行数和每行高度计算出来的最大显示高度
*
* @return 返回最大显示高度
*/
+ (CGFloat)maxHeight;
@end