iOS開發(fā)-使用UITextView封裝聊天界面的輸入框(占位文字、高度自適應、不用操心鍵盤的彈出與收回時更新Frame、字數(shù)限制以及按鈕靈活配置)

代碼未上,效果先行

keyBoard.gif

當然,底部的按鈕是可以靈活配置的,最多三個(左邊一個,右邊兩個)

keyboard1.png
keyboard2.png

how to use

- (void)setupUI
{
    CGFloat screenW = [UIScreen mainScreen].bounds.size.width;
    CGFloat screenH = [UIScreen mainScreen].bounds.size.height;
    
    self.inputView = [DifferInputView InputViewWithFrame:CGRectMake(0, screenH - 44, screenW, 44) limitLength:100 leftImage:@"icon_like_down" middleImage:nil rightImage:@"icon_like_down" buttonClickBlock:^(NSInteger index) {
        
        NSLog(@"%ld",index);
        // index 0:點擊了左邊的按鈕,即使左邊的圖片傳空,不顯示左邊的按鈕,index為0也表示點擊了左邊的按鈕,一次內(nèi)推,1表示點擊了中間的按鈕,2表示點擊了右邊的按鈕
        
        
    } returnClick:^(NSString *result) { //點擊鍵盤上的return按鈕
        NSLog(@"%@",result);
        self.textResult.text = result;
    }];

    [self.view addSubview:self.inputView];
    
   
}

最后看一下頭文件


#import <UIKit/UIKit.h>


typedef void(^ButtonClickBlock)(NSInteger index);
typedef void(^ReturnClickBlock)(NSString *result);

@interface DifferInputView : UIView

/*
 1.注意命名要求,@"leftImageName" 高亮則為:@"leftImageName_pre" 目的是為了少傳幾個參數(shù)。若傳nil,則表示隱藏該按鈕
 2.限制 字符數(shù) 為-1,則表示 沒有限制
 3.textview的returnType 為send
 */
+ (instancetype)InputViewWithFrame:(CGRect)frame limitLength:(NSInteger)length leftImage:(NSString *)leftImage middleImage:(NSString *)midImage rightImage:(NSString *)rightImage buttonClickBlock:(ButtonClickBlock)callBack returnClick:(ReturnClickBlock)returnCallBack;

//獲取 textview輸入的內(nèi)容,有時不一定在return時獲取到
@property (nonatomic,copy)NSString *result;

@end

更新。。。新增 占位文字

placeHolder.png

使用方面:只有初始化的類方法有變化

#import <UIKit/UIKit.h>


typedef void(^ButtonClickBlock)(NSInteger index);
typedef void(^ReturnClickBlock)(NSString *result);

@interface DifferInputView : UIView

/*
 1.注意命名要求,@"leftImageName" 高亮則為:@"leftImageName_pre" 目的是為了少傳幾個參數(shù)。若傳nil,則表示隱藏該按鈕
 2.placeString 占位文字
 3.限制 字符數(shù) 為-1,則表示 沒有限制
 4.textview的returnType 為send
 */
+ (instancetype)InputViewWithFrame:(CGRect)frame placeHolder:(NSString *)placeString limitLength:(NSInteger)length leftImage:(NSString *)leftImage middleImage:(NSString *)midImage rightImage:(NSString *)rightImage buttonClickBlock:(ButtonClickBlock)callBack returnClick:(ReturnClickBlock)returnCallBack;

//獲取 textview輸入的內(nèi)容,有時不一定在return時獲取到
@property (nonatomic,copy)NSString *result;

@end

github下載

demo下載地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容