我正在尝试以编程方式将UIView的底部边框添加到堆栈视图中。但是没有将边框添加到UIView()中。将UIView添加到堆栈视图的代码:
func addOtpViews()
{
var otpLength=Int(otpLen as String)!
print("otpLength is\(otpLength)")
var i=0;
while(i<=otpLength)
{
var view=UIView(frame: .zero)
addBottomBorderTo(view: view)
otpStackView.addArrangedSubview(view)
i=i+1
}
otpStackView.translatesAutoresizingMaskIntoConstraints=false
}
在上面的otpStackView上是我已在StoryBoard中添加的堆栈视图。
添加底线的代码:
func addBottomBorderTo(view:UIView) {
print("bottom is added")
let layer = CALayer()
layer.backgroundColor = UIColor.gray.cgColor
layer.frame = CGRect(x: 0.0, y: view.frame.size.height - 2.0, width: view.frame.size.width, height: 2.0)
view.layer.addSublayer(layer)
}
为什么底线未添加到UIView()?请帮助我。谢谢。
您是否在此处检查了视框
layer.frame = CGRect(x: 0.0, y: view.frame.size.height - 2.0, width: view.frame.size.width, height: 2.0)
view.frame可能是(0,0),那么您将看不到底线。
使用视框时请务必小心。
我的建议:1.添加子视图而不是添加子图层,然后使用snapkit进行布局。2.构建一个单独的名为bottomedView的视图类,然后使用snapkit在其中添加子视图。3.构建一个单独的视图类,名为bottomedView,并在onDraw上绘制底线。
请始终注意,当视图意外丢失时,可能无法确定视图框。