码迷,mamicode.com
首页 > 移动开发 > 详细

iOS设置textView的placeholder

时间:2015-12-01 12:30:29      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

         

在iOS中,一般textfield可以显示一航文字,有placeholder(占位符,用来显示提示信息),textView可以显示多行文字但是却没有placeholder这项,下面的方法可以解决这个问题。

@interface PersonSetViewController ()<UITextViewDelegate>

//遵从代理协议

- (void)viewDidLoad {

    [super viewDidLoad];

 //放在底部的两个用于显示placeholder的textView,将它们设置为不可编辑

    [_farmNameTextView setEditable:NO];

    [_farmDiscribeTextView setEditable:NO];

//放在上面的两个用于用户输入的textView,设置self为代理

    self.farmNameTView.delegate =self;

    self.farmDiscrebeTView.delegate =self;

}

//用来实现的方法

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{

    if(![text isEqualToString:@""])   //如果text不为空,那么隐藏下面的两个textView

    {

        [_farmNameTextView setHidden:YES];

        [_farmDiscribeTextView setHidden:YES];

    }

//如果字符为空并且光标在第一位,并且没有字符的时候,那么显示下面两个textView

    if([text isEqualToString:@""] && range.length==1 && range.location==0){

        [_farmNameTextView setHidden:NO];

        [_farmDiscrebeTView setHidden:NO];

    }

//如果遇到\n(回车键),那么收起键盘

    if ([text isEqualToString:@"\n"]) {

        [textView resignFirstResponder];

        return NO; //状态为不编辑

    }

    return YES; //状态为编辑

 }

//当出现键盘的时候,需要把原来的view向上移动,用动画实现效果

//开始编辑

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

    [UIView beginAnimations:nil context:nil]; //动画开始

    [UIView setAnimationDuration:0.2];//动画时长0.2秒

    [UIView setAnimationBeginsFromCurrentState:YES]; //设置动画从当前状态开始

    self.dataScrollView.frame=CGRectMake(0, 0, CGRectGetWidth(self.dataScrollView.frame), CGRectGetHeight(self.dataScrollView.frame)); //设置编辑状态下view的frame

    [UIView commitAnimations]; //提交动画

}

//结束编辑

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

    [UIView beginAnimations:nil context:nil];

    [UIView setAnimationDuration:0.2];

    [UIView setAnimationBeginsFromCurrentState:YES];

    self.dataScrollView.frame=CGRectMake(0, 133, CGRectGetWidth(self.dataScrollView.frame), CGRectGetHeight(self.dataScrollView.frame)); //设置非编辑状态下view的frame

    [UIView commitAnimations];

}

 

iOS设置textView的placeholder

标签:

原文地址:http://www.cnblogs.com/lv14/p/5009594.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!