我想以编程方式添加一组UITextField。 UITextFields的数量不知道,它将在For循环中创建。我可以执行此操作,但问题是创建UILabel放在彼此之上。如何放置一些放在彼此之下的约束。
目前我的代码如下:
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.
}
答案 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 :(得分:1)
创建CGRect时必须增加Y值。
将Y值存储在int变量上,并在每次迭代时将其增加到buttonHeight + desiredMargin。
希望这有帮助。
答案 2 :(得分: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
}
答案 3 :(得分: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)
}