iOS設定textView的placeholder

來源:互聯網
上載者:User

標籤:

         

在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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.