swift - 更改顶部 UIToolbar 边框的颜色
swift - change color of top UIToolbar border
我正在尝试更改 UIToolbar 上边框的颜色。
我试过了:
layer.borderWidth = 1
layer.borderColor = UIColor(r: 250, g: 250, b: 250).CGColor
那没用。
建议?谢谢
UIColor 在 0 和 1 之间工作,例如:
如果你想要 250 作为你的红色值,你需要做 250/255。我遇到了同样的问题,发现只需在值后添加 /255,颜色就会按预期工作。
/255 在适当的范围内创建值。您也可以进行除法并输入小数近似值。
如果您需要更多帮助或说明,请告诉我。
如果您不喜欢它的颜色,并且无法更改它,最快的方法就是去除细线 - 它实际上不是边框,而是阴影。
toolbar.clipsToBounds = true
或:
toolbar.layer.shadowOpacity = 0
或者您可以更改其阴影图像:
UITabbar.appearance().shadowImage = UIImage.colorForNavBar(.red)
您需要设置 RGB 颜色除以 255.0 以获得 0 到 1 的颜色。
例如:
layer.borderWidth = 1
layer.borderColor = UIColor(r: 250/255, g: 250/255, b: 250/255).CGColor
我用这段代码完成了:
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
您可以使用:
- (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]];
这实际上是一个阴影图像,所以只需创建一些具有必要颜色的 1 像素图像并使用
[toolbar setShadowImage:<your image> forToolbarPosition:UIBarPositionAny];
我正在尝试更改 UIToolbar 上边框的颜色。
我试过了:
layer.borderWidth = 1
layer.borderColor = UIColor(r: 250, g: 250, b: 250).CGColor
那没用。
建议?谢谢
UIColor 在 0 和 1 之间工作,例如:
如果你想要 250 作为你的红色值,你需要做 250/255。我遇到了同样的问题,发现只需在值后添加 /255,颜色就会按预期工作。
/255 在适当的范围内创建值。您也可以进行除法并输入小数近似值。
如果您需要更多帮助或说明,请告诉我。
如果您不喜欢它的颜色,并且无法更改它,最快的方法就是去除细线 - 它实际上不是边框,而是阴影。
toolbar.clipsToBounds = true
或:
toolbar.layer.shadowOpacity = 0
或者您可以更改其阴影图像:
UITabbar.appearance().shadowImage = UIImage.colorForNavBar(.red)
您需要设置 RGB 颜色除以 255.0 以获得 0 到 1 的颜色。
例如:
layer.borderWidth = 1
layer.borderColor = UIColor(r: 250/255, g: 250/255, b: 250/255).CGColor
我用这段代码完成了:
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
您可以使用:
- (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]];
这实际上是一个阴影图像,所以只需创建一些具有必要颜色的 1 像素图像并使用
[toolbar setShadowImage:<your image> forToolbarPosition:UIBarPositionAny];