2017-08-10 56 views
1

我編程方式創建我的用戶界面,這是我如何創建一個按鈕創建動態多的UIButton編程

let button: UIButton = { 

let button = UIButton() 
button.setTitle("Try1",.normal) 
return button 

} 

enter image description here

而這正是我想做的事情。例如movie1有2個類別,Dram &恐怖我只想顯示其中2個。 Movie2有4個類別,Dram &恐怖&運動&戰爭我只是想顯示其中4個。

現在我堅持我不知道該怎麼做。我知道你們會給負代表,但我需要幫助。

完成!溶液低於

首先我已經作出了結構

struct Category { 
let title: String 
let color: UIColor 
init(title: String, color: UIColor) { 
    self.title = title 
    self.color = color 
} 
} 

然後,我做出分類空數組類型STRUCT

var categories = [Category]() 
/* I appended some stuff manually to this array */ 
    categories.append(Category(title: "Dram", color: Colors.cherry)) 
    categories.append(Category(title: "Sport", color: Colors.lightGreen)) 
    categories.append(Category(title: "Horror", color: Colors.purple)) 
    categories.append(Category(title: "War", color: Colors.darkBlue)) 

/* Then I made a for loop */ 
for category in categories{ 
     let button = UIButton() 
     button.createButton(title: category.title, titleColor: .white, fontType: "bold", fontSize: 17, background: category.color, cornerRadius: 4) 
     stackView.addArrangedSubview(button) 
    } 

enter image description here

+1

你應該使用收集視圖 –

回答

1

使用水平StackView爲該。在StackView中,您可以根據需要添加儘可能多的子視圖,並且會自動調整爲可用空間。只需爲StackView設置約束條件,休息即可開箱即用。

您可以使用添加按鈕StackView:

stackView.addArangedSubview(button) 

要創建按鈕,你可以使用簡單的for循環:

for i in 1...3 { //change 3 to your value 
    let button = UIButton() 
    stackView.addArangedSubview(button) 
} 
+0

以及即時實際尋找創建埠ttons。我想要的是爲數據創建按鈕。如果響應數據是= [「Horror」,「Sport」],我想自動創建2個按鈕。 – Alper

+0

也可以使用堆棧視圖根據數據創建按鈕。 – PGDev

+0

我用for循環編輯了我的答案,它將爲您創建一個按鈕。這真的很容易 –

0

雨燕3.0 ...

let stackview = UIStackView(frame: CGRect(x: 0, y: 0, width: 512, height: 356)) // set your postion 
    stackview.axis = . Horizontal 
    stackview.spacing = 10.0 
    stackview.alignment = .Fill 
    stackview.distribution = .EqualSpacing 

    for i in 1...3 { 
    let button = UIButton() 
    stackview.addArangedSubview(button) 
    }