在iPhone上带有图像背景的自动换行文本字段?

时间:2009-08-01 13:59:17

标签: iphone iphone-sdk-3.0 uikit

有谁知道如何创建具有UIImage背景并进行自动换行的文本字段?

UITextField似乎没有自动换行功能,而UITextView无法使用背景图片!此外,它应该更改控件​​的大小或至少警告行数已更改,以便委托可以更改其大小..

此类控件的一个示例是SMS应用程序中消息的输入字段。

修改:代码还应获取文本字段以始终显示正在编辑的文本。显然,当UITextView在编辑时改变大小时,它会以某种方式失去对当前文本的关注。

非常感谢! 阿维亚德。

2 个答案:

答案 0 :(得分:2)

UITextField上没有自动换行功能,因为UITextField只支持单行文本。

使用UITextView。 make 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 
    }

}

答案 1 :(得分:0)

最终我编写了自己的代码,它在某种程度上有很多变通方法(例如改变焦点,再次删除所有文本时调整大小等)。如果有人有兴趣,我会发布代码。

在其他新闻中,就在今天,我在这里看到一个名为IFVerticallyExpandingTextField的不同问题。这个名字很有希望,代码在这里,我会看一看。任何有类似问题的人,你也可能想看到它。

我的错误,我没有仔细阅读:IFVerticallyExpandingTextField适用于Mac而非iPhone。