在 Objective C 中将图像与文本内联设置为 UITextView

Set Image inline with text to UITextView in Objective C

我想向 UITextView 添加与文本内联的图像,就像下面的屏幕截图一样


我尝试使用 NSTextAttachmentNSAttributedString 但它只在图像前后放置一行。

请帮我解决这个问题。

你只需要使用 'UIBezierPath'

例如,

txtvHtmlString.text = @“your long text…….”;

imgView = [[UIImageView alloc] initWithFrame:CGRectMake(120, 100, 152, 128)];

imgView.image = [UIImage imageNamed:@"smily.png"];     
imgView.layer.cornerRadius = 10;
[txtvHtmlString addSubview:imgView];

如果您的文本已更新,请不要忘记在 viewDidLayoutSubviews 中更新 bezierpath。

- (void)viewDidLayoutSubviews {
    UIBezierPath *exclusionPath = [UIBezierPath bezierPathWithRect:imgView.frame];
    txtvHtmlString.textContainer.exclusionPaths  = @[exclusionPath];
}