根据swift 3中文本视图中给出的文本调整标签?

时间:2017-10-13 13:50:52

标签: ios swift3 uilabel

我正在开发照片编辑应用,我正在尝试根据文本视图中给出的文本调整标签。我尝试了很多代码,但它对我不起作用。我想在Image上添加Label,这是基于我的textview中给出的文本,如下图所示。enter image description here我无法根据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

2 个答案:

答案 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

    }