2015-11-07 66 views
0
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { 


    int numLines = textView.contentSize.height/textView.font.lineHeight; 
    CGFloat goodHeight = BASE_COMMENT_HEIGHT + ((numLines-1) * textView.font.lineHeight); 
    CGFloat currentHeight = textView.frame.size.height; 
    CGFloat heightDiff = goodHeight - currentHeight; 

    if (heightDiff != 0) { 
     CGRect containerFrame = self.commentInputContainer.frame; 
     containerFrame.size.height += heightDiff; 
     containerFrame.origin.y -= heightDiff; 
     self.commentInputContainer.frame = containerFrame; 

     CGRect commentFrame = self.inlineCommentField.frame; 
     commentFrame.origin.y -= heightDiff; 
     commentFrame.size.height += heightDiff; 
     self.inlineCommentField.frame = commentFrame; 
    } 
    return YES; 
} 

我正在嘗試動態調整註釋字段的大小。當評論的行數增加時,我打算增加字段的大小和字段的容器大小。一起調整父級和子級幀的高度

但是,上面的代碼的問題是,當我嘗試調整父級(容器)和子級(commentField)的大小時,子級的大小不會更改。

這是怎麼回事?我該如何解決這個問題?

+0

你應該使用自動佈局來改變高度,它應該容易得多。 – kientux

回答

0

要獲取調整大小以顯示當前文本輸入的UITextView,可以禁用滾動並使用自動佈局。使textView的超視圖的高度取決於textView的高度。

相關問題