2016-11-19 6 views
0

テキストフィールドからテキストを取得し、それがオンになっている画像ビューの幅に制限があるラベルがあります。限界に達したときに新しい行を追加したい。しかし、 "\ n"とワードラッピング機能ではできませんでした。さらに、私はUILabelの高さと幅を正確にテキストサイズに設定する必要があります。 2行目の高さが2行でなければ、widthプロパティではそれほど正確ではありません。新しい行の後にUILabelを再配置する

func textFieldShouldEndEditing(_ textField: UITextField) -> Bool { 
    if(imageview.frame.width > label.frame.width + 2) 
    { 
    label_test.text = "\(label.frame.width)" 
    label.text = textfield.text 
     if(imageview.frame.width < label.frame.width + 20) 
     { 
      label.lineBreakMode = .byWordWrapping 
      label.text = textfield.text! + "\n" 
      label.textAlignment = NSTextAlignment.center; 
     } 
    } 
    return true 
} 

答えて

0

lineBreakModeを使用できないのはなぜですか?私の意見では、あなたのviewDidLoad中ほど基本的なセットアップを定義する必要があります。私がしなければラベルはImageViewの内側にドラッグ可能なので

func viewDidLoad() { 
    //Your stuff 
    label.frame.size.width = imageview.frame.width //Define max width 
    label.numberOfLines = 0 //Set infinite number of lines 
    label.lineBreakMode = .byWordWrapping 
} 

は、その後、あなたのtextfieldShouldEndEditingには、テキストと高さ

label.text = textfield.text 
label.sizeToFit() //The height is adjusted 
+0

を設定しましたそれは、フレームの制限がすでにimageviewsのフレーム値と等しいため、ラベルがドラッグ可能でないことが好きです。 –

関連する問題