I tried to add a border to a collections of button but seems can't do it right. What's wrong with the code?
I tried add a border with details like :
- key 1, 4, 7, delete : top
- key 2, 5, 8, 0 : top, left, right
- key 3, 6, 9, continue : top
Here is the code (I differ each border's colour for easily identify the border added by the code) :
class BM_BlipulsaViewController: UIViewController {
@IBOutlet var keysCollection: [UIButton]!
override func viewWillLayoutSubviews() {
keysAppearance()
}
func keysAppearance() {
for key in keysCollection {
var border = CALayer()
if(key.restorationIdentifier == "key1"
|| key.restorationIdentifier == "key4"
|| key.restorationIdentifier == "key7"
|| key.restorationIdentifier == "keyDelete") {
// top
border.frame = CGRectMake(0, 0, CGRectGetWidth(key.frame), 1.0)
border.backgroundColor = UIColor.yellowColor().CGColor
key.layer.addSublayer(border)
} else if(key.restorationIdentifier == "key2"
|| key.restorationIdentifier == "key5"
|| key.restorationIdentifier == "key8"
|| key.restorationIdentifier == "key0") {
// top
border.frame = CGRectMake(0, 0, CGRectGetWidth(key.frame), 1.0)
border.backgroundColor = UIColor.grayColor().CGColor
key.layer.addSublayer(border)
// left
border.frame = CGRectMake(0, 0, 1.0, CGRectGetHeight(key.frame))
border.backgroundColor = UIColor.blueColor().CGColor
key.layer.addSublayer(border)
// right
border.frame = CGRectMake(CGRectGetWidth(key.frame) - 1.0, 0, 1.0, CGRectGetHeight(key.frame))
border.backgroundColor = UIColor.redColor().CGColor
key.layer.addSublayer(border)
} else if(key.restorationIdentifier == "key3"
|| key.restorationIdentifier == "key6"
|| key.restorationIdentifier == "key9"
|| key.restorationIdentifier == "keyContinue") {
// top
border.frame = CGRectMake(0, 0, CGRectGetWidth(key.frame), 1.0)
border.backgroundColor = UIColor.brownColor().CGColor
key.layer.addSublayer(border)
}
}
}
}
Or is there any better way to add a border to the UIButton? Many thanks.