前言
最近會不斷推出一些輪子,這次寫了一個控件,類似微信輸入框秕噪,評論View,隨著文字增加,textView自增長高度
厚宰,
如果喜歡我的文章腌巾,可以關(guān)注我微博:袁崢Seemygo
Demo效果:
Demo演示:
1.添加底部View,到最底部
- 1.1 底部View都是顯示到最下面,并且都是固定死的,采用Xib或者storyboard搭建
2.搭建底部View
3.拖線
- 3.1 獲取底部View距離底部的約束固阁,做鍵盤彈出效果壤躲,底部View隨著鍵盤彈出城菊,而往上移動效果
// 監(jiān)聽鍵盤彈出
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil];
// 鍵盤彈出會調(diào)用
- (void)keyboardWillChangeFrame:(NSNotification *)note
{
// 獲取鍵盤frame
CGRect endFrame = [note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
// 獲取鍵盤彈出時長
CGFloat duration = [note.userInfo[UIKeyboardAnimationDurationUserInfoKey] floatValue];
// 修改底部視圖距離底部的間距
_bottomCons.constant = _bottomCons.constant == 0?endFrame.size.height:0;
// 約束動畫
[UIView animateWithDuration:duration animations:^{
[self.view layoutIfNeeded];
}];
}
- 3.2 獲取底部View高度的約束备燃,當(dāng)文字修改,去修改底部View整體高度
- 3.3 獲取文本框輸入框
4.監(jiān)聽文本輸入框凌唬,文字高度改變
- 修改底部高度約束就好了
// 監(jiān)聽文本框文字高度改變
_inputView.yz_textHeightChangeBlock = ^(NSString *text,CGFloat textHeight){
// 文本框文字高度改變會自動執(zhí)行這個block并齐,修改底部View的高度
// 設(shè)置底部條的高度 = 文字高度 + textView距離上下間距高度(10 = 上(5)下(5)間距總和)
_bottomHCons.constant = textHeight + 10;
};
源碼
點(diǎn)擊這下載源代碼