iOS開發-帶Placeholder的UITextView實現

iOS中UITextField帶有PlaceHolder屬性,能夠方便用於提示輸入。可是一樣能夠進行文本輸入的UITextView控件則沒有PlaceHolder屬性,仍是有些不方便的,尤爲是對於略帶強迫症的我來講。spa

而後搜索了一番,發現廣大開發者的智慧的無窮的,找到一種替代方案,以下:code

 

核心思路就是使用2個UITextView來模擬PlaceHolder的效果,其中作爲輸入區域的TextView在表面,背景要設爲透明,做爲PlaceHolder角色的TextView則在底層,二者經過UITextViewDelegate來動態控制。blog

代碼實現以下:開發

//經過判斷表層TextView的內容來實現底層TextView的顯示於隱藏
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
    if(![text isEqualToString:@""])
    {
        [_backgroundTextView setHidden:YES];
    }
    if([text isEqualToString:@""]&&range.length==1&&range.location==0){
        [_backgroundTextView setHidden:NO];
    }
    if ([text isEqualToString:@"\n"]) {
        [textView resignFirstResponder];
        return NO;
    }
    return YES;
}

 

大概就是上面這樣的咯,總之,任何實現都是有可行的替代方案的。io

同理,使用一個Label和一個TextView也是能夠的。另外還能夠自行繪製等,有不少不錯的替代方案class

相關文章
相關標籤/搜索