2016-11-08 17 views
2

我的內容的陣列如下創建和自定義一個的UIButton:多個數據

陣列= [NAME1,NAME2 NAME3 ...]

和我想顯示在標籤上這些內容的按鈕。問題是如果我的數組有很多項目並且我不想創建如此之多的按鈕,那麼這將是硬核。因此,請任何人都可以幫助我找到爲這些數據生成一個常見按鈕實例的方法。就像我的數組有2個項目一樣,視圖將顯示2個按鈕,等等......非常感謝!

P/s:問題用@Janmenjaya回答解決,這裏是我的代碼,仍然有一點與y位置卡住。

func displayFileList() { 
    for i in 0..<fileIdList.count { 
     let yRef : CGFloat = 35 
     let title = String(fileIdList.indexOf(i)) 
     let button = UIButton(frame: CGRect(x: 0, y: yRef * CGFloat(i), width: 919, height: 30)) 
     button.setTitle(title, forState: UIControlState.Normal) 
     button.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal) 
     button.backgroundColor = UIColor.yellowColor() 
     button.layer.borderWidth = 1; 
     button.layer.borderColor = UIColor.blackColor().CGColor 
     self.fileButtonContainView.addSubview(button) 
    } 
} 

回答

1

您可以遍歷數組並使用基於數組內容的動態標題以編程方式創建按鈕。

按照示例代碼

的示例代碼段:

arrData = NSMutableArray(); 

    arrData.addObject("Test0"); 
    arrData.addObject("Test1"); 
    arrData.addObject("Test2"); 
    arrData.addObject("Test3"); 
    arrData.addObject("Test4"); 

    var yRef : CGFloat = 100 

    for i in 0..<arrData.count{ 

     let title = arrData.objectAtIndex(i); 

     let btn = UIButton(type: .Custom); 
     btn.frame = CGRectMake(100, yRef, 100, 40); 
     btn.setTitle(title as? String, forState: UIControlState.Normal) 
     btn.backgroundColor = UIColor.grayColor(); 
     self.view.addSubview(btn); 

     yRef += CGRectGetHeight(btn.frame) + 10; 
    } 

輸出: enter image description here

希望它可以幫助

快樂編碼...

+0

我的榮幸,請注意 – Janmenjaya

+0

只是一點點,當我設置我的按鈕的標題,它不會顯示文本。它顯示如下警告:「從'索引?'投射到無關的類型'字符串'總是失敗'。看起來像類型轉換的一些問題 –

+0

@DuyKhanhNguyen讓我看看你的代碼。可能是你沒有保持數組中的字符串,你可能會保留數組中的自定義對象 – Janmenjaya