2015-11-05 32 views
0

我想以編程方式添加一組UITextFields。 UITextFields的數量不知道,它將在For循環中創建。我可以執行此操作,但問題是創建UILabels放在彼此之上。我怎樣才能放置一些放在彼此下面的約束條件。以編程方式將SubViews添加到彼此之下

目前我的代碼如下:

For Loop... 
{ 
    let Description = UILabel(frame: CGRectMake(20, 100, 300, 40)) 
        Description.font = UIFont.systemFontOfSize(18) 
    ... 
    self.view.addSubview(Description) 
    // StackView.addSubview(Description) 
    // I TRIED ADDING A STACK VIEW BUT HAD THE SAME EFFECT. 
} 

回答

1

你必須在創建的CGRect遞增Y值。

將Y值存儲在int變量中,並在每次迭代時將其增加到buttonHeight + desiredMargin。

希望這會有所幫助。

+0

這是執行此的最佳方法是什麼?它不會影響不同的屏幕尺寸? –

+0

您將使用scrollView的權利?只是不使用一個常數值的寬度 – Nanoc

1

不喜歡

第1步

最初創建Y協調和設置高度,只要你喜歡

var y : CGFloat = 3 

步驟2

for var index1:Int = 0 ; index1 < yourArray.count ; index1++ 
      { 

         let timerLbl:UILabel = UILabel(frame: CGRectMake(5, y, self.view.frame.size.width, 35)) //UILabel(frame: CGRectMake(50, y, self.view.frame.size.width, 35)) 
         timerLbl.textAlignment = .Center 
         timerLbl.textColor = UIColor.clearColor() 
         timerLbl.text = "00:00" 
         timerLbl.tag = index1 
         self.view.addSubview(timerLbl) 

        // continue the other lables 

         // the following line increment your height 
         y = y + 10 
        } 
+0

如果我想字段的寬度來填充視圖,而不是一個靜態值我該怎麼做? –

+0

如果你想填充寬度使用** self.view.frame.size.width **,如果任何新的設備在未來,它會自動填充寬度,檢查更新的答案,對不起,遲交回復 –

+0

好嗎謝謝很多 –

2

試試這個

var y = 100 
    For Loop... 
     { 
         let Description = UILabel(frame: CGRectMake(20, y, 300, 40)) 
    y = Description.Frame.size.height 
         Description.font = UIFont.systemFontOfSize(18) 
    ... 


     self.view.addSubview(Description) 

     // StackView.addSubview(Description) // I TRIED ADDING A STACK VIEW BUT HAD THE SAME EFFECT. 


     } 
1

我不在家裏,但你應該使用的代碼類似的東西:

var yRect : CGFloat = 100 
let padding : CGFloat = 20 
For Loop... 
    { 
    let Description = UILabel(frame: CGRectMake(20, yRect, 300, 40)) 
        Description.font = UIFont.systemFontOfSize(18) 
yRect += 40 
... 

self.view.addSubview(Description) 
} 
相關問題