2017-10-13 8 views
1

私は現在作業中です写真編集アプリケーションと私はテキストビューで与えられたテキストに基づいてラベルを調整しようとしています。私はたくさんのコードを試しましたが、それは私のためには機能しませんでした。画像にラベルを追加したいのですが、下の画像に示すように、テキストビューで与えられたテキストに基づいています。 enter image description hereテキストビューのテキストに基づいてラベルの幅と高さを設定できません。私はTried Followingコードを持っています。いくつか助けてください。スウィフト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) 

はまた、私はJLStickerTextView使用して私の問題を解決したが、そのプロジェクトでスウィフト3.0ので、私が行った変更のための互換性がありません。このリポジトリにあなたが見つけることができる

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 

    } 
関連する問題