2010-03-01 13 views
8

我正在嘗試獲取類似於SMS應用程序中的輸入框的可怕時間。像iPhone上的短信應用程序那樣的文本輸入框

任何人都可以提供一些指導如何建立其中之一,並使其看起來不錯?我需要一個類似於UITextfield的輸入框,但在輸入時會垂直拉伸。

我假設我需要計算文本的寬度,並在文本字換行時垂直拉伸覆蓋圖像幀。我所到的最接近的地方確實伸展了,但是在接近邊界時光標四處跳動。

UPDATE:

我有這個每天一個星期的工作,我對在UITextView的放棄。我可以讓它正確伸展,但是當退格時,Textview高度在上線時收縮太多。當我繼續退縮時,它會自行修正。例如,當我在第4行並退格到第3行時,它會顯示此行爲。然後,當我繼續退格時,它會更正,直到我到達第2行的末尾爲止。然後它會自行糾正,等等......。

我決定嘗試子類UITextField,但我甚至不能讓它顯示在我指定的幀大小。 150150150150。

+0

你看過Three20的TTTextEditor嗎? (請參閱下面的答案)。 – 2010-03-11 04:51:10

回答

2

Three20項目有一個控制,應該爲你做這個。

從Three20自述:

TTTextEditor是一個UITextView可以 高度自動增長,因爲你 類型。我使用它在Facebook Chat中輸入消息 ,它的行爲 類似於蘋果的SMS 應用程序中的編輯器。

+0

我終於決定走這條路。 – Bobby 2010-03-11 13:47:35

+0

太好了,讓我們知道它是如何運作的! – 2010-03-11 14:22:51

1

你可以自己做。幸運的是,UITextFieldcan notify you whenever its text changes,幸運的是NSString有方法(在UIKit Additions下)讓你get the height of the string given a certain width,幸運的是you can resize a UITextField yourself

+0

我以爲UITextField不支持多行。我一直在嘗試使用UITextView進行這項工作,但我不知道如何給它一個像「SMS」應用程序那樣的「框架」(圓形橢圓形)外觀。 – Bobby 2010-03-01 23:59:14

+0

@Bobby GAH!你是對的,我完全忘了那一點;謝謝你提醒我。 :)在這種情況下,你必須自己圍繞'UITextView'繪製邊框。 – 2010-03-02 00:11:34

+3

要給它一個圓形的橢圓覆蓋圖,在它的頂部添加一個「UIImageView」。然後將其圖像屬性設置爲用'stretchableImageWithLeftCapWidth:topCapHeight:'方法創建的'UIImage'(請查看文檔瞭解更多信息)。 – 2010-03-02 00:48:00

0

我知道這是舊的,但仍然看着這個答案的人現在有一個很好的Slack控制,那叫做SlackTextViewController

+0

你知道一個SlackTextViewController演示例子嗎? – 2014-10-14 06:31:55

+0

@jayrparro你有一個在存儲庫中https://github.com/slackhq/SlackTextViewController/tree/master/Examples/Messenger – 2014-10-14 11:00:18

+0

謝謝。它只是在2天前更新。 – 2014-10-19 08:50:11

相關問題