【发布时间】:2017-10-13 13:50:51
【问题描述】:
我正在开发 照片编辑应用程序,我正在尝试根据 Text View 中给出的文本调整标签。我尝试了很多代码,但它对我不起作用。我想在图像上添加标签,该标签基于我的 textview 中给出的文本,如下图所示。 我无法根据 textview 的文本设置标签的宽度和高度。我试过以下代码。请有人帮忙。
let newWidth: CGFloat = CGFloat(txtView.text.boundingRect(with: txtView.frame.size, options: .usesLineFragmentOrigin, context: nil).size.width)
let Label = UILabel(frame: CGRect(x: 100, y: 100, width: newWidth, height: 100))
imgView?.addSubview(Label)
我也试过了
var maximumLabelSize = CGSize(width: 296, height: FLT_MAX)
var expectedLabelSize: CGSize = yourString.size(withFont: yourLabel.font, constrainedTo: maximumLabelSize, lineBreakMode: yourLabel.lineBreakMode)
//adjust the label the the new height.
var newFrame: CGRect = yourLabel.frame
newFrame.size.height = expectedLabelSize.height
yourLabel.frame = newFrame
【问题讨论】:
-
不完全清楚你在做什么。您有
UIImageView,并且想在上面显示UILabel?文本应该居中吗?它应该覆盖整个图像,还是只覆盖一部分?我建议你展示一张你想要的结果图片。 -
@DonMag 请检查我更新的问题。
-
你提供的截图我猜它来自 JLStickerTextView。你想在图片上添加标签,这个 JLStickerTextView 库就是这样做的。我正在将此库用于视频编辑应用程序。检查作者提供的示例与库
-
嘿@ImrulKayes,我也试过这个库,但是有构建时间错误我已经在其中添加了问题github.com/luiyezheng/JLStickerTextView/issues/16
-
@KhushbuDesai,您必须编辑该库,因为它是用早期版本的 Swift(可能是 1.2)编写的。按照 Xcode 的说明手动消除错误(我已经这样做了)。