我正在尝试创建仅底部边框。我一直在寻找答案,但似乎没有任何工作,Xcode根本没有给出任何错误。
这是我的边境代码
func addborder(let theobject:AnyObject){
let object = theobject
let border = CALayer()
let width = CGFloat(2.0)
border.borderColor = UIColor.darkGrayColor().CGColor
border.frame = CGRect(x: 0, y: object.frame.size.height - width, width: object.frame.size.width, height: object.frame.size.height)
border.borderWidth = width
object.layer.addSublayer(border)
object.layer.masksToBounds = true
}
这是我以编程方式创建的UILabel的代码:
let jobtype1title = UILabel()
//jobtype1title.backgroundColor = UIColor.blackColor()
jobtype1title.backgroundColor = UIColor.blueColor()
jobtype1title.textColor = UIColor.whiteColor()
jobtype1title.widthAnchor.constraintEqualToConstant(scrollView.frame.size.width).active = true
jobtype1title.frame.size.height = 10
jobtype1title.textAlignment = .Center
addborder(jobtype1title)
scrollView.addSubview(jobtype1title)
jobtype1title.translatesAutoresizingMaskIntoConstraints = false
jobtype1title.centerXAnchor.constraintEqualToAnchor(scrollView.centerXAnchor).active = true
jobtype1title.topAnchor.constraintEqualToAnchor(scrollView.topAnchor, constant: 20).active = true
我正在将标签添加到Scrollview中,我正在尝试创建一个UIView(它将成为jobtype1title
标签的边框)。我在标签上遗漏了什么吗?我尝试使用添加边框功能到我用故事板制作的另一个标签,它的工作原理。但是我以编程方式创建的标签却没有。我错过了什么?
答案 0 :(得分:0)
我尝试使用添加边框功能到我用故事板制作的另一个标签,它的工作原理。但是这个我以编程方式创建的标签却没有。我错过了什么?
问题在于,addborder
取决于其了解frame
添加图层的object
的操作:
border.frame = CGRect(x: 0, y: object.frame.size.height - width, width: object.frame.size.width, height: object.frame.size.height)
您在故事板中创建的UILabel有一个框架,因此代码可以正常工作。
但是,当您致电jobtype1title
时,您的addborder
标签的没有有意义的框架;它将从约束和自动布局中获取其框架,此时尚未发生。在实际执行布局之前,标签基本上为零。因此,添加了边框,但您无法看到它,因为它的大小也是零。