为TextView 添加 占位文字【简单】

转自:http://m.2cto.com/kf/201608/534005.html

流程:
1.创建textView
2.给textView添加一个UILabel子控件,作为placeholder
3.在文本改变的代理方法里面显示/隐藏UILabel

特点:
该方法同样也可以实现类似于placeholder的功能。相比较方法一,方法二可以实现动态监听文本的改变,并非弹出键盘就立即清除placeholder,只有当用户开始输入文本的时候。placeholder才会消失。同样,当用户清空文本的时候,placeholder又会重新显示出来。

代理:<UITextViewDelegate>

pragma mark - 绘制 发布 界面

  • (void)createPublishView{

    UITextView * textView = [[UITextView alloc]init];
    self.textView = textView;
    [self.backgroundView addSubview:_textView];

    [_textView mas_makeConstraints:^(MASConstraintMaker *make) {

      make.left.right.top.mas_equalTo(0);
      make.height.mas_equalTo(74);
    

    }];

    _textView.backgroundColor = [UIColor redColor];
    _textView.delegate = self;
    [self setupPlaceHolder];

}

// 给textView添加一个UILabel子控件

  • (void)setupPlaceHolder {
    UILabel *placeHolder = [[UILabel alloc] init];
    self.placeHolder = placeHolder;
    [self.textView addSubview:placeHolder];

    [_placeHolder mas_makeConstraints:^(MASConstraintMaker *make) {

      make.left.mas_equalTo(15);
      make.top.mas_equalTo(12);
      make.height.mas_equalTo(20);
    

    }];

    placeHolder.backgroundColor = [UIColor yellowColor];

placeHolder.text = @"说点什么吧...";
placeHolder.textColor = [UIColor lightGrayColor];
placeHolder.numberOfLines = 0;
placeHolder.contentMode = UIViewContentModeTop;
placeHolder.font = [UIFont jk_systemFontOfPxSize:14];

}

pragma mark - TextView 代理 & 数据源

  • (void)textViewDidChange:(UITextView *)textView {
    if (!textView.text.length) {
    self.placeHolder.alpha = 1;
    } else {
    self.placeHolder.alpha = 0;
    }
    }
    //关闭键盘
    -(void) dismissKeyBoard{

    [self.textView resignFirstResponder];

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (一)Masonry介绍 Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布...
    木易林1阅读 2,397评论 0 3
  • Masonry是一个轻量级的布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了并具有高可读性...
    3dcc6cf93bb5阅读 1,834评论 0 1
  • iOS_autoLayout_Masonry 概述 Masonry是一个轻量级的布局框架与更好的包装AutoLay...
    指尖的跳动阅读 1,200评论 1 4
  • 2016年还有不到十天,而这一年的我们,经历了人生中第一个波澜起伏的一年。 还记得2016年的元旦,我们在长沙迎来...
    木子淑珎阅读 238评论 0 1
  • 打印时的生效样式有两种写法1.在head里面的style标签加midia=“print”属性 2.在外链.css文...
    super__皮皮阅读 7,855评论 0 0