2009-08-01 49 views
1

有誰知道如何創建具有UIImage背景的文本字段並進行文字包裝?在iPhone上有圖像背景的環繞文本字段?

似乎在UITextField上無法使用換行符,而UITextView無法使用背景圖像!此外,它應該更改控件​​的大小或至少提醒更改行數以便代表可以更改其大小。

此類控件的一個示例是SMS應用程序中消息的輸入字段。

編輯:代碼還應該獲取文本字段以始終顯示正在編輯的文本。很顯然,當UITextView在編輯時改變大小時,它會以某種方式失去對當前文本的關注。

謝謝! Aviad。

回答

2

單詞換行在UITextField上不可用,因爲UITextField只支持單行文本。

使用UITextView。使textView.backgroundColor = [UIColor clearColor]。首先添加UIImage,然後添加UITextView。確保尺寸是正確的,你應該沒問題。

至於改變的UITextView的大小,在你UITextViewDelegate,做這樣的事情:

- (void)textViewDidChange:(UITextView *)textView 
{ 
    NSString *s = textView.text; 
    CGSize testSize = CGSizeMake(textView.frame.size.width, NSIntegerMax); 
    CGSize neededSize = [s sizeWithFont: textView.font constrainedToSize: testSize  lineBreakMode: UILineBreakModeWordWrap]; // or UILineBreakModeCharacterWrap? 

    if (neededSize.height > testSize.height) 
    { 
     // grow textView 
     textView.frame = CGRectMake(textView.frame.origin.x, textView.frame.origin.y, neededSize.width, neededSize.height); 

     // then adjust the image size -- something like this 
     imageView.frame = textView.frame 
    } 

} 
+0

正如我所說的,我想要一個類似於iPhone應用程序中SMS應用程序的行爲。當文本需要包裝時,整個組件需要增長(包括圖像,可能使用UIImage的stretchImage消息)。 – 2009-08-01 15:44:47

0

最後,我寫我自己的代碼,它工作在一定程度上有很多解決方法(改變焦點例如,在再次刪除所有文本時調整大小等)。如果任何人有興趣,我會發布代碼。

在其他消息,就在今天,我在這裏看到了一個不同的問題,這裏叫做IFVerticallyExpandingTextField。這個名字很有希望,代碼在這裏,我會看看。任何有類似問題的人,您可能也想看到這一點。

我的錯誤,我沒有仔細閱讀:IFVerticallyExpandingTextField是爲Mac,而不是iPhone。