ios 以编程方式在另一个视图的边缘(分层)自动布局覆盖视图
ios autolayout overlay view on edge of another view (layering), programmatically
这里我设计了一个自定义箭头,它将用作共享按钮。它应该被固定到下边缘,其中心点被锚定到底部视图,如图所示。
我如何使用 VFL 执行此操作?
这就是我尝试的
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[_whiteSquare(160)]-10-|"
options:NSLayoutFormatDirectionLeadingToTrailing
metrics:nil
views:elementDict]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[_shareButton(45)]-|"
options:NSLayoutFormatDirectionLeadingToTrailing
metrics:nil
views:elementDict]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[_shareButton(45)]-20-|"
options:NSLayoutFormatDirectionLeadingToTrailing
metrics:nil
views:elementDict]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-10-[_whiteSquare]-10-|"
options:NSLayoutFormatDirectionLeadingToTrailing
metrics:nil
views:elementDict]];
其中 whiteSquare
和 shareButton
都附加到父视图。但这只是将 shareButton
放在超级视图的底部,而不是中心锚定到 whiteSquare
的底部
您应该将分享按钮放置在相对于白色方块而不是超级视图的位置
这应该可以解决问题:
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[_whiteSquare(160)]-10-|"
options:NSLayoutFormatDirectionLeadingToTrailing
metrics:nil
views:elementDict]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[_whiteSquare]-22.5-[_shareButton(45)]"
options: NSLayoutFormatDirectionRightToLeft
metrics:nil
views:elementDict]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-10-[_whiteSquare]-10-|"
options:NSLayoutFormatDirectionLeadingToTrailing
metrics:nil
views:elementDict]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[_whiteSquare]-22.5-[_shareButton(45)]"
options:NSLayoutFormatDirectionRightToLeft
metrics:nil
views:elementDict]];
这里我设计了一个自定义箭头,它将用作共享按钮。它应该被固定到下边缘,其中心点被锚定到底部视图,如图所示。
我如何使用 VFL 执行此操作?
这就是我尝试的
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[_whiteSquare(160)]-10-|"
options:NSLayoutFormatDirectionLeadingToTrailing
metrics:nil
views:elementDict]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[_shareButton(45)]-|"
options:NSLayoutFormatDirectionLeadingToTrailing
metrics:nil
views:elementDict]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[_shareButton(45)]-20-|"
options:NSLayoutFormatDirectionLeadingToTrailing
metrics:nil
views:elementDict]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-10-[_whiteSquare]-10-|"
options:NSLayoutFormatDirectionLeadingToTrailing
metrics:nil
views:elementDict]];
其中 whiteSquare
和 shareButton
都附加到父视图。但这只是将 shareButton
放在超级视图的底部,而不是中心锚定到 whiteSquare
您应该将分享按钮放置在相对于白色方块而不是超级视图的位置
这应该可以解决问题:
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[_whiteSquare(160)]-10-|"
options:NSLayoutFormatDirectionLeadingToTrailing
metrics:nil
views:elementDict]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[_whiteSquare]-22.5-[_shareButton(45)]"
options: NSLayoutFormatDirectionRightToLeft
metrics:nil
views:elementDict]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-10-[_whiteSquare]-10-|"
options:NSLayoutFormatDirectionLeadingToTrailing
metrics:nil
views:elementDict]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[_whiteSquare]-22.5-[_shareButton(45)]"
options:NSLayoutFormatDirectionRightToLeft
metrics:nil
views:elementDict]];