2013-01-02 27 views
0

我有一個UIViewController與自定義UITextView(CodeTextView)和左邊的這個文本視圖我有一個自定義的UITableView(LinesTableView)。 LinesTableView包含與CodeTextView對齊的行號。自定義UITextView當按下輸入時調整大小

當我開始編輯CodeTextView和鍵盤出現時,我編輯的這兩種觀點的大小:

- (void)keyboardAppears:(NSNotification *)notification 
{ 
    [_codeTextView setFrame:CGRectMake(30, 0, 290, self.view.frame.size.height - 216.0f)]; 
    [_linesTableView setFrame:CGRectMake(0, 0, 30, self.view.frame.size.height - 216.0f)]; 
} 

當編輯CodeTextView,當我按下一個按鈕,我更新LinesTableView:

- (void)updateLines 
{ 
    NSString *plainText = self.text; 
    NSArray *components = [plainText componentsSeparatedByString:@"\n"]; 
    int lines = components.count; 
    if([[components lastObject] isEqualToString:@""]) lines--; 
    _linesTableView.lines = lines; 
    [_linesTableView reloadData]; 
} 

但是,當顯示鍵盤並按下Enter鍵時,CodeTextView會被調整到原始高度!當我註釋掉[_linesTableView reloadData]時,一切正常。因此,當我重新加載LinesTableView時,LineTableView和CodeTextView會以某種方式返回原始高度。

我不知道如何解決這個問題。我認爲這並不難,但我不能想出辦法做到這一點。任何人都可以幫助我嗎?

在此先感謝! :)

回答

0

快速和骯髒的方式將兩個東西放在一個UIView包裝它們,所以你可以調整該UIView,並使其剪輯的內容,intead調整實際表的大小。這樣,當數據重新加載時,即使視圖再次放大,它仍然會被剪切。在我看來,如果使用UIScrollView並將2個非滾動組件放入其中,它甚至會更好。那樣,鍵盤所佔據的地方並不會毀掉那麼多的經驗。

+0

我已經把這兩個視圖在一個UIView現在,但是當我調整這個視圖,其中的2個視圖,保持相同的大小。我檢查了'autoresize子視圖'和'剪輯子視圖'框。以編程方式調整高度也不起作用。你有什麼想法,爲什麼? – Devos50

相關問題