04环信聊天界面 - 完善聊天输入框

来源:互联网 发布:ip归属地数据库 离线 编辑:程序博客网 时间:2024/06/03 01:15

一、设置inputToolbar的高度,随着输入文字的增多而改变

1.连线inputToolbar的高度的约束:


2.在UITextViewDelegate代理方法 - textViewDidChange:计算高度

#pragma mark - UITextViewDelegate- (void)textViewDidChange:(UITextView *)textView{    // 1.计算textView的高度,调整整个inputToolbar的高度    CGFloat textViewH = 0;    CGFloat minH = 33; //textView最小高度    CGFloat maxH = 68; //textView最大高度    CGFloat contentH = textView.contentSize.height;    if (contentH < minH) {        textViewH = minH;    }else if (contentH > maxH){        textViewH = maxH;    }else{        textViewH = contentH;    }            // 2.监听用户是否点击了键盘的"Send"按钮 -- 判断最后一个字符是否是换行符    if ([textView.text hasSuffix:@"\n"]) {        // 发送消息        [self sendMessage:textView.text];                // 清空textView中的文字        textView.text = nil;                // 用户点击"发送"之后,textView高度还原        textViewH = minH;    }        // 3.调整整个inputToolbar的高度    /**     7为textView到顶部的距离     6为textView到底部的距离     */    self.inputToolbarHeightConstraint.constant = 7 + 6 + textViewH;    [UIView animateWithDuration:0.25 animations:^{        [self.view layoutIfNeeded];    }];}

最后效果如动画:

二、设置textView的边框(其实就是背景图片)

1.添加一个imageView作为textView的背景(注意顺序),然后设置约束和textView一致,设置拉伸,更改textView的背景色为透明(以便能看见下面的imageView)


2.最后输入框textView就有边框颜色了



三、如果发送之后输入框光标位置不对

    // 4.让光标回到原位#warning 技巧    [textView setContentOffset:CGPointZero animated:YES];    [textView scrollRangeToVisible:textView.selectedRange];


0 0