2017-01-25 3 views
0

ラベルからボタンのタイトルを初期化したい。私は私が私のラベルとタイトルを初期化することができるかわからない、ラベルのタイトルからボタンを初期化する

let smallSquare = CGSize(width: 30, height: 30) 
let button = UIButton(frame: CGRect(origin: CGPointZero, size: smallSquare)) 

:しかし

let label = UILabel(frame: CGRectMake(0, 0, 200, 21)) 
label.center = CGPointMake(160, 284) 
label.textAlignment = NSTextAlignment.Center 
label.text = "I'am a test label" 

通常、私は文字列にタイトルを追加するには、このプロパティを使用します。私はこのコードを持って

button.setTitle("Button Title",for: .normal)

私のラベルをボタンのタイトルに入れることは可能ですか?事前に

おかげ

+0

あなたは 'ボタン –

+0

にaddSubView'ラベルはすでに、その後UIButtonビューでtitleLableを与えることができます。これを使って。 – karthikeyan

+0

'button.setTitle(label.text!、for:.normal)'を試しましたか? –

答えて

2
あなたはマイク・アルターは、この(注のようなコメントで述べたように、カスタムあなたのボタンにサブビューとしてラベルを追加することができ

:コードスウィフトであります3、しかしスウィフト2. *に採用が容易であるべきヒントは、コードのコメントである):。あなたが見るように、あなたのカスタム値と

class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     view.backgroundColor = .white 

     let smallSquare = CGSize(width: 30, height: 30) 
     let button = UIButton(frame: CGRect(origin: .zero, size: smallSquare)) 
     button.translatesAutoresizingMaskIntoConstraints = false 
     button.backgroundColor = .red 

     // add the button to your view 
     view.addSubview(button) 

     // set constraints of your button 
     button.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true 
     button.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true 


     let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 21)) 
     label.translatesAutoresizingMaskIntoConstraints = false 
     label.center = CGPoint(x: 160, y: 284) 
     label.textAlignment = .center 
     label.text = "I'm a test label" 

     // add the label to your button 
     button.addSubview(label) 

     // set constraints of your label 
     label.centerXAnchor.constraint(equalTo: button.centerXAnchor).isActive = true 
     label.centerYAnchor.constraint(equalTo: button.centerYAnchor).isActive = true 
    } 
} 

結果は(次のようになりますただ、ボタンの赤の背景を追加しましたバットのフレーム)ラベルのフレームに比べて上:

enter image description here

0

あなたのラベルがtext性質を持っています。あなたはそれを使って値を設定し、それを使って値を取得することもできます。テキストはオプションなので、アンラップする必要があります。

let labelText = label.text ?? "" 
button.setTitle(labelText, for: .normal) 
0
if let textFromLabel = yourCustomLabel.text { 

    yourButton.setTitle(textFromLabel, .normal) 
} 

は、私はあなたがやることをお勧めだろうものです

関連する問題