2017-01-25 3 views
0

Я хочу инициализировать название кнопки из метки. У меня есть этот код:Инициализировать кнопку с заголовком из метки в swift

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

вы можете 'addSubView' Ярлык для кнопки –

+0

уже тогда дал titleLable ввиду UIButton. используй это. – karthikeyan

+0

Вы попробовали 'button.setTitle (label.text!, For: .normal)'? –

ответ

2

Вы можете добавить вас заказ ярлык, как подвид к кнопке, как Майк Alter упоминается в комментариях, как это (Примечание: Код в Swift . 3, но должно быть легко адаптироваться к Swift 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) 
} 

что я предлагаю вам сделать

Смежные вопросы