我正在开发照片编辑应用,我正在尝试根据文本视图中给出的文本调整标签。我尝试了很多代码,但它对我不起作用。我想在Image上添加Label,这是基于我的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
答案 0 :(得分:2)
我已经使用 JLStickerTextView 解决了我的问题但是在此存储库中它与 Swift 3.0 不兼容,所以我在项目中进行了更改,你可以找到没有任何工作项目来自https://github.com/khush004/StickerView/tree/master
的错误答案 1 :(得分: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
}