代码之家  ›  专栏  ›  技术社区  ›  Aviad Ben Dov

iPhone上的文字包装文本字段是否带有图像背景?

  •  1
  • Aviad Ben Dov  · 技术社区  · 15 年前

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

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

    谢谢你! 阿维德。

    2 回复  |  直到 15 年前
        1
  •  2
  •   Amagrammer    15 年前

    UITextField上不支持换行,因为UITextField仅支持单行文本。

    使用UITextView。使textView.backgroundColor=[UIColor clearColor]。首先添加UIImage,然后在上面添加UIExtView。确保尺寸正确,你应该会没事的。

    要更改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 
        }
    
    }
    
        2
  •  0
  •   Aviad Ben Dov    15 年前

    最后,我编写了自己的代码,在某种程度上解决了很多问题(例如更改焦点,再次删除所有文本时调整大小,等等)。如果有人感兴趣,我会发布代码。

    在其他新闻中,就在今天,我在一个不同的问题中看到了一个叫做 IFVerticallyExpandingTextField . 名字很有前途,代码在这里,我来看看。任何有类似问题的人,你可能也想看到这一点。

    我错了,我没有仔细阅读: IFVerticallyExpandingTextField 是Mac电脑的,不是iPhone。