2014-10-07 47 views
0

我在我的應用程序中有一個文本視圖,它旁邊有一個完成按鈕,可以退出鍵盤。基本上,我不希望文字視圖在文本視圖旁邊永久顯示完成按鈕,而是在點擊時文本視圖的寬度減小,然後完成按鈕將出現在空間中。然後,當用戶點擊屏幕或完成按鈕時,按鈕消失,文本視圖再次增加到正常大小。減小UITextView的大小以顯示UIButton

我已經實現了讓用戶在開始輸入時出現按鈕的代碼,但是我想改變它,以便在他們點擊文本視圖時出現,並且我還需要幫助添加動畫以縮小文本視圖。

謝謝。

回答

1

實現你的textview的委託方法textViewShouldBeginEditing:。然後,在該方法中,做這樣的事情:

button.alpha = 0.0f; 
button.hidden = NO; 
[UIView animationWithDuration:0.3f animations:^{ 
    NSInteger padding = 5; 
    CGRect textViewFrame = textView.frame; 
    textViewFrame.width -= CGRectGetWidth(button.frame) - padding; 

    // Edit 
    textView.frame = textViewFrame; 

    // and just to fade the button in as the text field shrinks 
    button.alpha = 1.0; 
}]; 

當你按一下按鈕,文本字段返回到正確的寬度

+0

感謝您的答覆,我會做相反。我在Swift中這樣做,我想知道什麼相當於'textViewFrame.width - = CGRectGetWidth(self.notesDone.frame)'在Swift中?此刻我得到一個錯誤 - 不能調用' - ='與類型的參數列表'(CGFloat,CGFloat)' – user3746428 2014-10-07 20:44:34

+0

我不熟悉Swift,但你有沒有嘗試過相當的'textViewFrame.width = textViewFrame。寬度 - self.notesDone.frame.size.width'或這只是導致相同的錯誤? – Chris 2014-10-07 20:47:49

+0

啊,我明白了。這給了我錯誤:'不能指定'寬度'textViewFrame' – user3746428 2014-10-07 20:50:20