iOS Swift Constrain视图之间的界限 在其他视图上限制小形状
我正在尝试创建如下视图。图像将在圆圈内,一条线将连接两个图像。我坚持如何约束视图之间的红线
我目前正在使用两个底部圆圈的堆叠视图和三个较大的圆形视图
我的第二个问题是如何约束像下面这样的元素。首先是较大圆圈上方的红色圆圈,然后是较大圆圈上方的小方框。我的想法是利用尾随和底部约束并使它们都是负面的
答案 0 :(得分:0)
我对第1部分所做的是将3个球放在堆栈视图中,就像你建议的那样,然后让第3个视图(线)独立于堆栈。
您需要确保将线放在堆栈下方以便显示。然后使用
约束该行blueLine.translatesAutoresizingMaskIntoConstraints = false
blueLine.leadingAnchor.constraintEqualToAnchor(greyCircle.centerXAnchor).active = true
blueLine.topAnchor.constraintEqualToAnchor(greyCircle.centerYAnchor).active = true
blueLine.trailingAnchor.constraintEqualToAnchor(smallCircle.centerXAnchor).active = true
blueLine.bottomAnchor.constraintEqualToAnchor(smallCircle.centerYAnchor).active = true
您可以在代码或故事板中执行此操作。
现在,您的视图的左上角位于大圆圈的中心,右下角位于底部圆圈的中心。
但我们真的想要一条线而不仅仅是一个方形视图。你可以创建一个UIView的自定义子类,它只是通过覆盖drawRect
class LineView : UIView {
override func drawRect(rect: CGRect) {
let ctx = UIGraphicsGetCurrentContext()
CGContextMoveToPoint(ctx, rect.origin.x, rect.origin.y) //move to top corner
CGContextSetLineWidth(ctx, 5)
CGContextAddLineToPoint(ctx, rect.origin.x + rect.size.width, rect.origin.y + rect.size.height)
CGContextStrokePath(ctx)
}
}
对于另一种情况,您应该能够将尾缘和底边限制为相等。