有谁知道如何创建具有UIImage背景的文本字段并进行文字包装?在iPhone上有图像背景的环绕文本字段?
似乎在UITextField上无法使用换行符,而UITextView无法使用背景图像!此外,它应该更改控件的大小或至少提醒更改行数以便代表可以更改其大小。
此类控件的一个示例是SMS应用程序中消息的输入字段。
编辑:代码还应该获取文本字段以始终显示正在编辑的文本。很显然,当UITextView在编辑时改变大小时,它会以某种方式失去对当前文本的关注。
谢谢! Aviad。
有谁知道如何创建具有UIImage背景的文本字段并进行文字包装?在iPhone上有图像背景的环绕文本字段?
似乎在UITextField上无法使用换行符,而UITextView无法使用背景图像!此外,它应该更改控件的大小或至少提醒更改行数以便代表可以更改其大小。
此类控件的一个示例是SMS应用程序中消息的输入字段。
编辑:代码还应该获取文本字段以始终显示正在编辑的文本。很显然,当UITextView在编辑时改变大小时,它会以某种方式失去对当前文本的关注。
谢谢! Aviad。
单词换行在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
}
}
最后,我写我自己的代码,它工作在一定程度上有很多解决方法(改变焦点例如,在再次删除所有文本时调整大小等)。如果任何人有兴趣,我会发布代码。
在其他消息,就在今天,我在这里看到了一个不同的问题,这里叫做IFVerticallyExpandingTextField
。这个名字很有希望,代码在这里,我会看看。任何有类似问题的人,您可能也想看到这一点。
我的错误,我没有仔细阅读:IFVerticallyExpandingTextField
是为Mac,而不是iPhone。
正如我所说的,我想要一个类似于iPhone应用程序中SMS应用程序的行为。当文本需要包装时,整个组件需要增长(包括图像,可能使用UIImage的stretchImage消息)。 – 2009-08-01 15:44:47