iOS Swift Constrain视图之间的线条,在其他视图上限制小形状

时间:2016-04-05 00:54:49

标签: ios swift constraints

iOS Swift Constrain视图之间的界限 在其他视图上限制小形状

我正在尝试创建如下视图。图像将在圆圈内,一条线将连接两个图像。我坚持如何约束视图之间的红线

我目前正在使用两个底部圆圈的堆叠视图和三个较大的圆形视图 linebetween circles

我的第二个问题是如何约束像下面这样的元素。首先是较大圆圈上方的红色圆圈,然后是较大圆圈上方的小方框。我的想法是利用尾随和底部约束并使它们都是负面的 square circle

1 个答案:

答案 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)
  }
}

对于另一种情况,您应该能够将尾缘和底边限制为相等。