我正在尝试更改UIToolbar上顶部边框的颜色。
我试过了:
layer.borderWidth = 1
layer.borderColor = UIColor(r: 250, g: 250, b: 250).CGColor
那不起作用。
连连呢?谢谢
答案 0 :(得分:3)
我使用此代码完成了它:
class ViewController: UIViewController {
@IBOutlet weak var toolBar: UIToolbar!
override func viewDidLoad() {
super.viewDidLoad()
// the layer with the width of the device
// and height of 0.5 px
let topBorder = CALayer()
topBorder.frame = CGRectMake(0, 0, view.frame.size.width, 0.5)
topBorder.backgroundColor = UIColor.redColor().CGColor
// adding the layer to the top
// of the toolBar
toolBar.layer.addSublayer(topBorder)
}
}
结果:
来源:https://blog.adamcooke.io/set-the-top-border-colour-of-a-uinavbar-d9035c6b4fdb#.f37molpsj
答案 1 :(得分:1)
如果你不喜欢它的颜色,并且因为它不可能改变它,最快的黑客就是摆脱那个发际线 - 它实际上不是一个边界,它是一个阴影
toolbar.clipsToBounds = true
OR:
toolbar.layer.shadowOpacity = 0
或许你可以改变它的阴影图像:
UITabbar.appearance().shadowImage = UIImage.colorForNavBar(.red)
答案 2 :(得分:0)
UIColor在0和1之间工作,例如:
如果你想要250作为红色值,你需要做250/255。我遇到了同样的问题,发现只需在颜色之后添加/ 255颜色就可以正常工作。
/ 255在适当的范围内创建值。你也可以进行除法并输入十进制近似值。
如果您需要更多帮助或澄清,请告知我们。
答案 3 :(得分:0)
您需要将RGB颜色除以255.0以获得0到1的颜色。
例如:
layer.borderWidth = 1
layer.borderColor = UIColor(r: 250/255, g: 250/255, b: 250/255).CGColor
答案 4 :(得分:0)
您可以使用:
- (void)setToolbarLineWith:(UIColor *)color
{
for(UIView *v in self.navigationController.toolbar.subviews){
if([NSStringFromClass([v class]) isEqualToString:@"_UIBarBackground"])
{
for(UIView *w in v.subviews){
if([NSStringFromClass([w class]) isEqualToString:@"UIImageView"])
{
[w setBackgroundColor:color];
}
}
}
}
}
并运行:
[self setToolbarLineWith:[UIColor redColor]];
答案 5 :(得分:0)
实际上是阴影图像,因此只需创建具有必要颜色的1像素图像并使用
[toolbar setShadowImage:<your image> forToolbarPosition:UIBarPositionAny];