2017-06-27 8 views
0

私は、並べて存在する必要があるボタンの配列を含むUIViewであるポップアップメニューを作りたいと思います。代わりに、私はcenter.xを動的に変更したにもかかわらず、それらはすべて互いに積み重ねられています。これは私のコードスニペットです:どのようにしてアレイのボタンを作成するのですか?

func createPopUpView(number: Int) -> UIView{ 
    let popUpView: UIView = UIView() 
    var buttons: [UIButton] = [UIButton]() 
    let button: UIButton = UIButton(frame: CGRect(x: 0, y: 0, width: 32, height:42)) 
    button.backgroundColor = UIColor.black 
    button.layer.cornerRadius = 5 
    for i in 0..<number { 
     buttons.append(button) 
     buttons[i].setTitle(String(i), for: .normal) 
     buttons[i].center.x += 32 
     popUpView.addSubview(buttons[i]) 
    }  
    return popUpView   
} 

ありがとうございます。

+0

'ボタンをしてみましょう。また、

このようにそれを試してみてください...あなたはあなたのpopUpViewを作成するときにフレームを供給する必要があり、私は32 *、Y: 0、width:32、height:42)) ''代わりに 'for'ループの中に入れますか? – Larme

+0

あなたは*「ボタン」が重ねて積み重なっていますか?*?スポイラー:そうではありません。 1つのボタンしかありません。それを繰り返し配列に追加しても、そのコピーを作成しているわけではありません。 – DonMag

答えて

0

ループのたびに新しいボタンを作成する必要があります。 UIButton = UIButton(フレーム:CGRect(X:

func createPopUpView(number: Int) -> UIView{ 
    let popUpView: UIView = UIView(frame: CGRect(x: 0, y: 0, width: number * 32, height: 42)) 
    for i in 0..<number { 
     let button: UIButton = UIButton(frame: CGRect(x: i * 32, y: 0, width: 32, height:42)) 
     button.backgroundColor = UIColor.black 
     button.layer.cornerRadius = 5 
     button.setTitle(String(i), for: .normal) 
     popUpView.addSubview(button) 
    } 
    return popUpView 
} 
+0

私は見る!ありがとう!ちょうど始める.... –

関連する問題