当前位置: 首页 > 面试题库 >

在UITextView中合并文本和图像

仲涵亮
2023-03-14
问题内容

在开始之前,请允许我承认存在类似的问题,有些有答案,有些没有。但是,它们不能解决我的特定问题。如果您知道任何信息,请转给我。

现在,当我将图片添加到时,我将图片UITextView放置在光标所在的位置。我通过每次添加5个空格来为图像腾出空间来实现此目的。光标移到的末尾时UItextView,除非我键入一个键,否则它将停留在该位置而不会自动移动到下一行。即使我添加空格,它也仍然停留在那里,因此我的图像只是堆积在那里。我决定添加一个换行符,"\n"以将其手动移至下一行。现在我有两个问题。首先,即使我有类似这样的情况,也只能显示角落的部分图像:

if ((cursorPosition.x + 30) >= message.frame.width) {

        message.text = message.text.stringByAppendingString("\n");
    }
    else {
        message.text = message.text.stringByAppendingString("      ");
    }

如何解决此问题,使其不会脱离框架?

其次,因为是手动添加新行,所以当我删除文本时,光标会移到某个对我来说很奇怪的任意位置。例如,我可能要删除第4行的文本,但它只会跳到第2行。关于如何解决这两个问题的任何建议将不胜感激。以下是UITextView外观:

编辑:我正在对此进行编辑,以帮助可能遇到类似问题的任何人。我想创建一个应用程序,用户可以像在此一样将文本和图像添加在一起WhatsApp。我一直努力做到这一点,直到向我建议了以下解决方案。效果很好。希望它能帮助某人。


问题答案:

如果我了解您的目标以及当前的实现方式。您应该检查是否需要先返回

if ((cursorPosition.x + 30) >= message.frame.width) {
    message.text = message.text.stringByAppendingString("\n");
}

然后,您应该获得当前的光标位置,并在其中添加UIImageView。

    let size = CGSize(width: 30, height: 30);
    let img = UIImage(named: change_arr[indexPath.row]);
    let addImg = UIImageView(image: UIImage(named: change_arr[indexPath.row]));
    addImg.frame = CGRect(origin: newCursorPosition, size: size);
message.addSubview(addImg);

然后如果您需要添加空格,请立即添加。

如之前的评论所述,使用NSTextAttachment将简化所有这些操作,并避免您不得不创建UIViews等。

它看起来像这样,您不需要检查光标位置,因为它可以像处理文本一样处理它。

//create your UIImage
let image = UIImage(named: change_arr[indexPath.row]);
//create and NSTextAttachment and add your image to it.
let attachment = NSTextAttachment()
attachment.image = image
//put your NSTextAttachment into and attributedString
let attString = NSAttributedString(attachment: attachment)
//add this attributed string to the current position.
textView.textStorage.insertAttributedString(attString, atIndex: textView.selectedRange.location)

现在,图像已内联,并且像文本一样对待。如果用户在其上退格,它将像文本一样删除。



 类似资料:
  • 我有一个问题,不知道如何修复它。我有这样的消息: 这是我的信息:tongue_out::眨眼:dsdangrydsangryhoanghamobile.comdsd:眨眼:这是表情符号和更多的文字…… 它将像下面的图像显示:眨眼:,:舌头_出:和其他表情符号是从链接:https://filev4.subiz.com/wink.png.所有的图像是一个字符串,现在我必须从url和文本解析表情符号显示

  • 如何在中添加占位符,类似于在中为设置的占位符?

  • 如果你是根据题目来回答这个问题的,但对蒙古语不感兴趣,你可能会寻找这个问题 Swift:如何旋转UIButton和UILabel的文本? 我一直在学习Swift,以便为传统蒙古语开发iOS应用程序。问题是传统蒙古语是从上到下、从左到右垂直书写的。我的问题是,如何在垂直显示文本的同时仍进行换行工作? 如果你跟我呆一会儿,我会尽量把问题解释得更清楚。下面是我想要实现的文本视图的图片。如果外文脚本让你不

  • 我需要一个视图,包含(标题,图像,和细节),细节是关于一个文本视图。 我需要的是,允许滚动到所有视图,而不仅仅是TexView。在我的应用程序中,如果我禁用了滚动,则textview将被剪切,因为高度不是动态的: 在我的代码中,我是这样写的:

  • 问题内容: 我想更改与数组索引匹配的UITextView中特定文本的文本颜色。我能够略微修改此答案,但不幸的是,每个匹配短语的文本颜色仅更改了一次。 问题答案: 抱歉,我刚注意到您的消息。这是一个工作示例(在操场上测试):

  • 问题内容: 我正在制作一个使用的应用程序。现在,我希望“文本视图”具有一个类似于您可以为“文本字段”设置的占位符。您将如何使用Swift完成此任务? 问题答案: 为Swift 4更新 本身并不具有占位符属性,因此您必须使用方法以编程方式创建和操作一个占位符。我建议根据所需的行为使用下面的解决方案#1或#2。 注意:对于这两种解决方案,请添加到类中并设置为使用文本视图的委托方法。 解决方案#1- 如