2012-05-16 63 views
1

我在滾動視圖上使用UITextView ...並且我希望它在我寫入內容時自動展開......但我無法做到這一點......iPhone:UITextView編輯時不擴展

textViewBusiness = [[UITextView alloc] initWithFrame:CGRectMake(25,332,268,60)]; 
textViewBusiness.text=strMyBusiness; 
textViewBusiness.editable=NO; 
textViewBusiness.font = [UIFont fontWithName:@"Arial" size: 17.0]; 
textViewBusiness.layer.borderWidth = 2.0f; 
textViewBusiness.layer.borderColor = [[UIColor grayColor] CGColor]; 
textViewBusiness.backgroundColor = [UIColor clearColor]; 
[textViewBusiness setTextColor:[UIColor blackColor]]; 
[self.scrollView addSubview: textViewBusiness]; 

CGRect frame = textViewBusiness.frame; 
frame.size.height = textViewBusiness.contentSize.height; 
textViewBusiness.frame = frame; 

此代碼是不是爲我工作...

感謝

回答

5

確保文本字段的委託設置...

someTextField.delegate = self; 

然後在相應的文本字段委託方法中調整textView的大小。

- (void)textViewDidChange:(UITextView *)textView; 

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

您在上面添加的代碼是正確的。只要確保它在正確的位置。

- (void)textViewDidChange:(UITextView *)textView 
{ 
    CGRect frame = textView.frame; 
    frame.size.height = textView.contentSize.height; 
    textView.frame = frame; 
} 

Dynamic expand UITextView

0

HPGrowingTextView是與文本一UITextView它生長/收縮,並啓動時,含量達到一定數目的行滾動。類似於蘋果在短信應用中使用的一種。查看小型(過時)截屏視頻的鏈接。

1

您的代碼將無法使用。

您需要將您的代碼分成2個片段,然後將它們放置到適當的位置,然後您的代碼應該可以工作。

片段1(在我的測試中,我把在viewDidLoad中這個片段):

textViewBusiness = [[UITextView alloc] initWithFrame:CGRectMake(25,332,268,60)]; 
textViewBusiness.text=strMyBusiness; 
textViewBusiness.editable=NO; 
textViewBusiness.font = [UIFont fontWithName:@"Arial" size: 17.0]; 
textViewBusiness.layer.borderWidth = 2.0f; 
textViewBusiness.layer.borderColor = [[UIColor grayColor] CGColor]; 
textViewBusiness.backgroundColor = [UIColor clearColor]; 
[textViewBusiness setTextColor:[UIColor blackColor]]; 
[self.scrollView addSubview: textViewBusiness]; 

確保以上片段來看,和您的文本視圖顯示在屏幕上,然後運行第二個片段。如果你的文本視圖沒有顯示在屏幕上,那麼contentView不會被初始化,並且高度是未定義的。

片段2(在我的測試中,我把這個片段在viewDidAppear):

CGRect frame = textViewBusiness.frame; 
frame.size.height = textViewBusiness.contentSize.height; 
textViewBusiness.frame = frame; 

祝你好運!