前言
最近會不斷推出一些輪子,這次寫了一個控制元件,類似微信輸入框,評論View,隨著文字增加,textView自增長高度
,
如果喜歡我的文章,可以關注我微博:吖了個崢,也可以來小碼哥,瞭解下我們的iOS培訓課程。後續還會更新更多內容,有任何問題,歡迎簡書留言
崢吖。。。
Demo效果:
Demo演示:
1.新增底部View,到最底部
- 1.1 底部View都是顯示到最下面,並且都是固定死的,採用Xib或者storyboard搭建
2.搭建底部View
3.拖線
- 3.1 獲取底部View距離底部的約束,做鍵盤彈出效果,底部View隨著鍵盤彈出,而往上移動效果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// 監聽鍵盤彈出 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil]; // 鍵盤彈出會呼叫 - (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高度的約束,當文字修改,去修改底部View整體高度
- 3.3 獲取文字框輸入框
4.監聽文字輸入框,文字高度改變
- 修改底部高度約束就好了
1 2 3 4 5 6 |
// 監聽文字框文字高度改變 _inputView.yz_textHeightChangeBlock = ^(NSString *text,CGFloat textHeight){ // 文字框文字高度改變會自動執行這個block,修改底部View的高度 // 設定底部條的高度 = 文字高度 + textView距離上下間距高度(10 = 上(5)下(5)間距總和) _bottomHCons.constant = textHeight + 10; }; |
原始碼
點選這下載原始碼