使用自定义间距和文本在UITextView上添加图像

时间:2013-10-18 14:08:30

标签: ios uiimageview uitextview overlay xcode4.5

我想在文本视图上添加图像,并且需要适当的间距,如屏幕截图所示。 Its A screenshot as I want as per design:

我曾尝试在textview上添加图片,但我在按要求放置文字时遇到问题。 请给我一些帮助。

5 个答案:

答案 0 :(得分:9)

在定义textView和imageView后添加以下代码。

import CoreText.Framework

UIBezierPath *exclusionPath = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, imageView.frame.size.width, imageView.frame.size.height)];

textView.textContainer.exclusionPaths  = @[exclusionPath];

[textView addSubview:imageView];

对核心文字教程有一个清晰的想法,请参阅raywenderlich

答案 1 :(得分:4)

在SWIFT中:

var exclusionPath:UIBezierPath = UIBezierPath(rect: CGRectMake(0, 0, imageView.frame.size.width, imageView.frame.size.height))

textView.textContainer.exclusionPaths  = [exclusionPath]
textView.addSubview(imageView)

答案 2 :(得分:3)

您遇到的问题是您在问题中添加的图片未使用UITextView

这样做的方法是使用Text Kit并手动将文本渲染到视图上。

通过这样做,您可以(在iOS7中)指定文本“包裹”的CGPath

您可以观看2013年WWDC视频“文字工具包简介”here

这显示了如何做到这一点。

答案 3 :(得分:3)

与我的建议一样,您可以使用UIWebview代替TextView来执行此任务,请loadHTMLString使用example of loading local fines in UIWebview这是{{3}}请查看此内容并表示赞同你需要

答案 4 :(得分:3)

@Fogmeister是正确的,但是如果你想通过使用现在iOS 7中仅使用NSAttributedString的默认RICH TEXT和IMAGE功能来做一些不太复杂的事情,那么看一下这个link

您将无法支持文本换行 - 使用Pages - 但是为了简单记录,可能会这样做。