写点什么

为融云聊天页面的输入框添加 Placeholder

发布于: 2021 年 03 月 16 日

产品要求给输入框加个 Placeh,其实挺简单一功能,寻遍他们的官网https://www.rongcloud.cn/和文档https://docs.rongcloud.cn/v4/都没有找到相关资料,现实很残酷,SDK 木有这个接口,只能自己实现了,思来想去,用了个笨办法,加个 UILabel 一试,还真行,有需要的您请往下看。


其实就是给输入框价格 UILabel,在该显示的时候显示,该隐藏的时候隐藏就完事儿了,代码如下:


  1. 在聊天页面添加一个 UILabel 属性


@property(nonatomic, strong) UILabel *placeholderLabel;
复制代码
  1. 初始化并添加 placeholderLabel 对象


- (void)configPlaceholder {    
复制代码


    //初始化和设置    
复制代码


    self.placeholderLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 180, 20)];
复制代码


    [self.chatSessionInputBarControl.inputTextView addSubview:self.placeholderLabel];
复制代码


    self.placeholderLabel.text = @"测试 Placeholder";    
复制代码


    self.placeholderLabel.textColor = [UIColor grayColor];    
复制代码


    self.placeholderLabel.userInteractionEnabled = YES;    
复制代码


    //添加点击手势    
复制代码


    UITapGestureRecognizer *tapLabel = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapPlaceholderLabel)];    
复制代码


    [self.placeholderLabel addGestureRecognizer:tapLabel];
复制代码


}
复制代码


    
复制代码


- (void)tapPlaceholderLabel {    
复制代码


    [self.chatSessionInputBarControl updateStatus:KBottomBarKeyboardStatus animated:YES];
复制代码


}
复制代码
  1. 在内容发生变化和点击发送后,设置 placeholder 效果的显示


- (void)inputTextView:(UITextView *)inputTextView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {    
复制代码


    //在内容发生变化和点击发送后,设置 placeholder 效果的显示    
复制代码


    if ((range.location == 0 && [text isEqualToString:@""]) || [text isEqualToString:@"
复制代码


"]) {        
复制代码


        self.placeholderLabel.hidden = NO;    
复制代码


        } else {        
复制代码


        self.placeholderLabel.hidden = YES;    
复制代码


        }
复制代码


}
复制代码
  1. 还要提一下,融云的 SDK 有撤回消息以后的“重新编辑”功能,在这个时候,要关闭 placeholder 效果的显示


- (void)didTapReedit:(RCMessageModel *)model {    
复制代码


    self.placeholderLabel.hidden = YES;    
复制代码


    [super didTapReedit:model];
复制代码


}
复制代码

到这儿功能就完成了,placeholderLabel 的具体文字效果可以自行修改调整,希望上面的代码可以帮到你,喜欢的话,点个赞吧。


用户头像

还未添加个人签名 2021.01.26 加入

还未添加个人简介

评论

发布
暂无评论
为融云聊天页面的输入框添加 Placeholder