gpt4 book ai didi

ios - Xamarin iOS Storyboard, subview 半宽然后是父 View 。看法

转载 作者:行者123 更新时间:2023-11-29 11:52:58 25 4
gpt4 key购买 nike

我是 iOS UI 开发的新手。我陷入了以下问题。

我试图将父 View 宽度的一半分配给 2 个 subview 。 (见图)。我不能将乘数设置为小于零。红色和绿色 subview 的宽度应相等,宽度应为父 View 的一半。

我正在使用 visual studio 进行开发。

enter image description here

最佳答案

您应该能够将乘数设置为 1:2,因为它适用于比率。

我觉得这是 Visual Studio 中 iOS 设计器的一个错误,因为乘数是一个 float 。来自文档 here :

Multiplier: The value of attribute 2 is multiplied by this floating point number. In this case, the multiplier is 1.0.

在 Xamarin Studio 中,iOS Designer 接受一个比率,也就是 1/2 0.5:

enter image description here

在 Xcode 中:

enter image description here

它甚至像这样被添加到 xib/storyboard 的源代码中:

<constraint id="9" firstItem="3" firstAttribute="width" secondItem="8bC-Xf-vdC" secondAttribute="width" multiplier="1:2"/>

作为变通办法,您可以编辑 .xib 或 .storyboard 文件,但这并不理想。

您可以设置乘数的替代方法:

红景

  • LeadingSpace 到 superview.leadingspace

  • TrailingSpace 到 superview.CenterX

绿景

  • LeadingSpace 到 superview.CenterX

  • TrailingSpace 到 superview.trailingspace

这与将宽度设置为父 View 宽度大小的一半相同。

TBH Visual studio 和 Xamarin studio 的 iOS 设计器在添加复杂约束方面与 Xcode 相比不是很好(这并不复杂,但仍然失败)。如果可以的话,我建议您尝试在 Xcode 中对其进行编辑。

更新

如果您想以编程方式添加它们,请在 ViewDidLoad 中添加:

public override void ViewDidLoad()
{
base.ViewDidLoad();

greenView.TranslatesAutoresizingMaskIntoConstraints = false;
redView.TranslatesAutoresizingMaskIntoConstraints = false;

View.AddConstraints(new NSLayoutConstraint[]{
NSLayoutConstraint.Create(redView, NSLayoutAttribute.Leading, NSLayoutRelation.Equal, View, NSLayoutAttribute.Leading, 1, 0),
NSLayoutConstraint.Create(redView, NSLayoutAttribute.Trailing, NSLayoutRelation.Equal, View, NSLayoutAttribute.CenterX, 1, 0),
NSLayoutConstraint.Create(redView, NSLayoutAttribute.CenterX, NSLayoutRelation.Equal, View, NSLayoutAttribute.CenterX, 1, 0),

NSLayoutConstraint.Create(greenView, NSLayoutAttribute.Leading, NSLayoutRelation.Equal, View, NSLayoutAttribute.CenterX, 1, 0),
NSLayoutConstraint.Create(greenView, NSLayoutAttribute.Trailing, NSLayoutRelation.Equal, View, NSLayoutAttribute.Trailing, 1, 0),
NSLayoutConstraint.Create(greenView, NSLayoutAttribute.Top, NSLayoutRelation.Equal, redView, NSLayoutAttribute.Top, 1, 0),
});
}

它会产生这样的 View :

port land

关于ios - Xamarin iOS Storyboard, subview 半宽然后是父 View 。看法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40338005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com