我试图添加一个角落半径我的标签栏在左上角和右上角。
下面是我的代码:
import UIKit
class TabBarController: UITabBarController, UITabBarControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
self.tabBar.layer.cornerRadius = 32
self.tabBar.layer.masksToBounds = true
self.tabBar.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner]
}
}
下面是我的标签栏界面生成器:
但是我的标签栏看起来像这样:
正如你所看到的,如果你看这些角,它们不是透明的,它们是白色的。它应该显示它后面的图像。所以看起来像是掩蔽出了问题,但我不确定是什么。
我做错了什么?
下面是我的另一个IBDesignable类,它可能会影响这个:
import UIKit
@IBDesignable
class DesignableView: UIView {
}
@IBDesignable
class DesignableButton: UIButton {
}
@IBDesignable
class DesignableLabel: UILabel {
}
@IBDesignable
class DesignableTextField: UITextField {
}
extension UIView {
@IBInspectable
var cornerRadius: CGFloat {
get {
return layer.cornerRadius
}
set {
layer.cornerRadius = newValue
layer.masksToBounds = newValue > 0
}
}
@IBInspectable
var shadowOffset: CGSize {
get {
return layer.shadowOffset
}
set {
layer.shadowOffset = newValue
}
}
@IBInspectable
var shadowColor: UIColor {
get {
return UIColor(cgColor: layer.shadowColor!)
}
set {
layer.shadowColor = newValue.cgColor
}
}
@IBInspectable
var shadowRadius: CGFloat {
get {
return layer.shadowRadius
}
set {
layer.shadowRadius = newValue
}
}
@IBInspectable
var shadowOpacity: Float {
get {
return layer.shadowOpacity
}
set {
layer.shadowOpacity = newValue
}
}
@IBInspectable
var borderWidth: CGFloat {
get {
return layer.borderWidth
}
set {
layer.borderWidth = newValue
}
}
@IBInspectable
var borderColor: UIColor {
get {
return UIColor(cgColor: layer.borderColor!)
}
set {
layer.borderColor = newValue.cgColor
}
}
}
更新:
我发现,如果我改变选项卡后面的视图控制器的背景颜色,选项卡栏的角落会匹配该颜色:
如果我调试视图,你实际上可以看到其中一个视图中的小红角:
这是什么意思?
2条答案
按热度按时间lvjbypge1#
我用TabBarController创建了一个项目。在这一点上,我使用了你的代码,并设置了角半径,边框宽度和边框颜色。
在第一个ViewController中,我执行了以下操作:
1.已检查是否在ViewController中选中了“Under Bottom Bars”。
1.添加了一个图像,并将其扩展到底部栏下。
这一切似乎都像预期的那样工作。见下图。也许你可以仔细检查你的代码,看看上面的步骤是否有帮助。
w8ntj3qf2#
刚刚遇到了同样的问题,我将我的
UICollectionView
锚定到view.safeAreaLayoutGuide.bottomAnchor
。这导致我看到UITabBarController
后面的视图控制器背景色,而不是单元格内容。从你的视图层次结构看,它看起来像是同样的问题,白色框架没有排在UITabBarController
后面。将UICollectionView
底部锚设置为view.bottomAnchor
,并向集合视图添加底部内容插入,解决了我的问题下面是我在
UITabBarController
子类https://stackoverflow.com/a/65285566/19499376中使用的代码