如何将特定观点置于所有其他观点之上?
How to bring a specifc view above all others?
我有一个圆圈和一个 sideView,我想简单地将 sideView 放在我的圆圈上方,但我尝试使用 sideView.bringSubvieToFront(view) 等几个命令,但这不起作用。我还检查了情节提要中视图的顺序,以确保我的 sideView 位于最后一个位置,这对两者都没有帮助。看起来基本视图数字总是高于所有其他看起来很奇怪的视图。有什么简单的方法可以把这个 sideView 放在圆的顶部?
@IBOutlet weak var sideView: UIView!
let shapeLayer = CAShapeLayer()
override func viewDidLoad() {
super.viewDidLoad()
sideView.bringSubviewToFront(view)
let center = view.center
let circularPath = UIBezierPath(arcCenter: center, radius: 125, startAngle: -CGFloat.pi / 2, endAngle: 2*CGFloat.pi - CGFloat.pi/2, clockwise: true)
shapeLayer.path = circularPath.cgPath
shapeLayer.lineWidth = 10
//shapeLayer.fillColor = UIColor.clear.cgColor
shapeLayer.fillColor = UIColor.red.cgColor
shapeLayer.lineCap = CAShapeLayerLineCap.round
view.layer.addSublayer(shapeLayer)
shapeLayer.strokeColor = UIColor.green.cgColor
}
}
这里有两个问题。
sideView.bringSubviewToFront(view)
您的 sideView 是控制器视图的子视图,而不是相反。所以你应该打电话给view.bringSubviewToFront(sideView)
。见documentation:参数为子视图
- 代码顺序
您试图在添加其他子视图和层之前将子视图移到前面。后者最终会被放在上面。添加其他子视图后移动 bringSubviewToFront
。
我有一个圆圈和一个 sideView,我想简单地将 sideView 放在我的圆圈上方,但我尝试使用 sideView.bringSubvieToFront(view) 等几个命令,但这不起作用。我还检查了情节提要中视图的顺序,以确保我的 sideView 位于最后一个位置,这对两者都没有帮助。看起来基本视图数字总是高于所有其他看起来很奇怪的视图。有什么简单的方法可以把这个 sideView 放在圆的顶部?
@IBOutlet weak var sideView: UIView!
let shapeLayer = CAShapeLayer()
override func viewDidLoad() {
super.viewDidLoad()
sideView.bringSubviewToFront(view)
let center = view.center
let circularPath = UIBezierPath(arcCenter: center, radius: 125, startAngle: -CGFloat.pi / 2, endAngle: 2*CGFloat.pi - CGFloat.pi/2, clockwise: true)
shapeLayer.path = circularPath.cgPath
shapeLayer.lineWidth = 10
//shapeLayer.fillColor = UIColor.clear.cgColor
shapeLayer.fillColor = UIColor.red.cgColor
shapeLayer.lineCap = CAShapeLayerLineCap.round
view.layer.addSublayer(shapeLayer)
shapeLayer.strokeColor = UIColor.green.cgColor
}
}
这里有两个问题。
sideView.bringSubviewToFront(view)
您的 sideView 是控制器视图的子视图,而不是相反。所以你应该打电话给view.bringSubviewToFront(sideView)
。见documentation:参数为子视图
- 代码顺序
您试图在添加其他子视图和层之前将子视图移到前面。后者最终会被放在上面。添加其他子视图后移动 bringSubviewToFront
。