初步实现UITextView的placeholder的效果

2016-01-28  本文已影响101人  国民希大大

UITextView和UITextField不同,没有系统自带的placeholder属性。在使用时,需要自己去实现类似placeholder的效果,下面使用了一种比较简单的方法来实现此属性。


第一步:创建textView,并赋值其文本属性

textView.text = @"具体内容";

第二步:遵循代理方法

<UITextViewDelegate>

textView.delegate = self;

第三步:在代理方法中进行相应的操作

//在开始编辑的代理方法中进行如下操作

- (void)textViewDidBeginEditing:(UITextView *)textView {

      if ([textView.text isEqualToString:@"具体内容"]) {

            textView.text = @"";

      }

}

//在结束编辑的代理方法中进行如下操作

- (void)textViewDidEndEditing:(UITextView *)textView {

       if (textView.text.length<1) {

           textView.text = @"具体内容";

       }

}


通过这三步便可实现UITextView仿placeholder的效果,如果有充足的时间或者感兴趣,你也可以自定义一个UITextView,并且增加一些属性,比如:颜色、placeholder等等。



项目实例:

需要写一个这样的界面,下面要使用三个UITextView,并且每个UITextView里面都有placeholder

图1

关键代码:

首先遵循UITextViewDelegate代理方法

图2

然后挂代理,同时给三个不同的TextView加tag,以便于在代理方法中对不同的textView进行不同的操作。   

图3

执行代理方法,在代理方法中对不同的textView进行不同的操作。

图4

Demo实现效果

图5

总结:不知道各位看官有没有注意到一个问题,就是在输入和placeholder一样的内容的时候会出现问题,因为为了项目进度,采用这种简便的方法,但是仍有问题,先记下,在以后的会进行更改。。。

上一篇下一篇

猜你喜欢

热点阅读