Iphone 如何删除UIToolBar上的上边框
我已将UIToolBar的“染色颜色”设置为某个值,并且我看到了要删除的边框线:Iphone 如何删除UIToolBar上的上边框,iphone,objective-c,ios,ipad,Iphone,Objective C,Ios,Ipad,我已将UIToolBar的“染色颜色”设置为某个值,并且我看到了要删除的边框线: 我该如何去除这条黑边>正确答案是极权主义者的答案……仅供参考 我的答复仍在下面,以供参考 下面是我用白色背景工具栏所做的 whiteToolBar.layer.borderWidth = 1; whiteToolBar.layer.borderColor = [[UIColor whiteColor] CGColor]; 也许你可以用你的颜色做同样的事情。你可以这样做: self.navigation
我该如何去除这条黑边>正确答案是极权主义者的答案……仅供参考 我的答复仍在下面,以供参考
下面是我用白色背景工具栏所做的
whiteToolBar.layer.borderWidth = 1;
whiteToolBar.layer.borderColor = [[UIColor whiteColor] CGColor];
也许你可以用你的颜色做同样的事情。你可以这样做:
self.navigationController.toolbar.clipsToBounds = YES;
将样式设置为UIBarStyleBlackTranslucent是为我做的(iOS 6)这在iOS版本上不一致,在iOS 7上似乎不起作用。我在另一个问题中回答了这个问题:您可以修改该解决方案,只删除背景阴影(并保留
工具栏.backgroundColor
任何您喜欢的颜色)
为我工作,如果有人仍在尝试导航栏,我对这些答案感到有点困惑,但我忽略了一点,即您使用的是插座,因此为了清楚起见,这里是我用来隐藏边框的swift代码:
import UIKit
class ViewController: UIViewController {
//MARK Outlets
@IBOutlet weak var ToolBar: UIToolbar!
//MARK View Functions
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
// Hide the bottom toolbar's top border
ToolBar.clipsToBounds = true
}
}
为此,我将工具栏拖到了视图的底部,但它不是顶部导航栏,其他一些问题也涉及到了它。将shadowimage设置为[UIImage new]使用
剪辑工具栏
技术剪辑UIToolBar的阴影以及背景视图。在iPhoneX上,这意味着背景不再延伸到外部
下面的解决方案使用遮罩仅剪裁UITabBar的顶部。遮罩在UIToolBar子类中呈现,遮罩框架在布局子视图
的覆盖中保持更新
类工具栏:UIToolbar{
fileprivate let maskLayer:CALayer={
let layer=CALayer()
layer.backgroundColor=UIColor.black.cgColor
返回层
}()
重写初始化(帧:CGRect){
super.init(frame:frame)
初始化()
}
必需的初始化?(编码器aDecoder:NSCoder){
super.init(编码者:aDecoder)
初始化()
}
fileprivate func initialize(){
layer.mask=maskLayer
//在此自定义工具栏
}
覆盖func布局子视图(){
super.layoutSubviews()
//高度是大于UIToolbar顶部到屏幕底部距离的任意数字
maskLayer.frame=CGRect(x:-10,y:0,宽度:frame.width+20,高度:500)
}
}
创建一个1像素x 1像素的清晰图像,并将其命名为clearPixel.png
toolbar.setShadowImage(UIImage(named: "clearPixel.png"), forToolbarPosition: UIBarPosition.any)
这对我在iOS 6中的工作没有帮助,这也适用于裸UIToolbar;不必是导航控制器的一部分。在iOS 7.x和SDK 7.Nico上就像一个符咒一样工作,这是因为“clipsToBounds”只在其边界内绘制视图。在这种情况下,层的边框绘制在视图的边界之外,因此将“clipsToBounds”设置为true“disable”它的边框。
clipsToBounds=YES
会打断iPhone X上工具栏的外观。它会隐藏顶部边框,但它也阻止了工具栏的背景延伸到屏幕的底部边缘。对于@jomafer的评论,使用whiteToolBar.cliptobunds=YESSwift更为简洁:myToolbar.clipsToBounds=true
我在此加入人们俱乐部,感谢他们过去在Interface Builder或如上所述中对边界的自定义剪辑,是的。更好的解决方案。clipToBounds
不是理想的解决方案,因为它会使安全区域保持空白。很好,这很有效。你能解释一下为什么吗?谢谢。毫无疑问,正确的答案是这是您需要使用的答案,以避免在安全区域(如iPhone X底部)丢失工具栏颜色,即[self-setShadowImage:UIImage.new-forToolbarPosition:UIBarPositionAny];这适用于除iPhone X以外的任何设备。我将代码行逐行复制,创建了一个新的Swift类,并在Interface Builder中指定了该类。@E-Madd可能是Interface Builder的不同之处。在我们的设置中,我们以编程方式创建带有UINavigationBar和UIToolbar子类的UINavigationController,如下所示:let navigationController=UINavigationController(navigationBarClass:NavigationBar.self,toolbarClass:Toolbar.self)
。我还有边界。实际上,它似乎是主视图和工具栏之间的一个间隙。这导致在iPhone XCan上,底部在安全区域边界处被切断,也可以简单地执行UIImage()
,不需要资源
toolbar.setShadowImage(UIImage(named: "clearPixel.png"), forToolbarPosition: UIBarPosition.any)
navigationController?.toolbar.barTintColor = .white
navigationController?.toolbar.setShadowImage(UIImage(), forToolbarPosition: .any)
[[UIToolbar appearance] setBackgroundImage:[[UIImage alloc] init] forToolbarPosition:UIBarPositionBottom barMetrics:UIBarMetricsDefault];
[[UIToolbar appearance] setShadowImage:[[UIImage alloc] init] forToolbarPosition:UIBarPositionBottom];
[UIToolbar appearance].barTintColor = [UIColor ...];```