2017-10-13 112 views
1

我正在研究照片编辑应用我试图根据文本视图中给出的文本来调整标签。我已经尝试了很多代码,但它并没有为我工作。我想在图像上添加标签,这是基于我的textview中给出的文本,如下图所示。 enter image description here我无法根据textview的文本设置标签的宽度和高度。我试过了下面的代码。有人请帮忙。根据文本视图中的文本在swift 3中调整标签?

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 
+1

它不完全清楚你在做什么。你有'UIImageView',你想在它上面显示一个'UILabel'?文本应该居中吗?它应该覆盖整个图像还是只包含一部分?我建议你展示一下你想要的结果。 – DonMag

+0

@DonMag请检查我更新的问题。 –

+0

您提供的屏幕截图我想它来自** JLStickerTextView **。你想添加标签到图片上,这个JLStickerTextView库就是这样做的。我正在使用这个库进行视频编辑应用程序。检查作者提供的示例与库 –

回答

0
func calcheight(strin:String) -> CGFloat 
    { 
     let label = UILabel(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: CGFloat.greatestFiniteMagnitude)) 
     label.numberOfLines = 0 
     label.text = strin 
     label.sizeToFit() 
     return label.frame.height + 2 

    } 
相关问题