VS for Mac - 将自动布局用于横向和纵向视图

VS for Mac - Using Autolayout for landscape and portrait views

我需要帮助,我花了一天时间搜索各种 YouTube 视频和 google 等,我遇到了困难!

我将 Visual Studio 用于 Mac,基本上,我的登录屏幕在纵向模式下看起来不错,但在横向模式下则不然,所以我想通过重新设计的屏幕显示不同的视图,尤其是在横向模式下.

Microsoft 论坛建议我使用 OnSizeAllocated 事件来确定方向,这听起来不错,但我就是不知道你是怎么做到的。

我有一个没有任何事件的视图控制器。我有一个视图,没有任何事件。如果我尝试将代码手动添加到 ViewControllers class 它不喜欢它。如果我尝试将它添加到 Main.cs 它不喜欢它或 AppDelegate.cs 它不喜欢它。

设计屏幕以匹配方向一定就像呼吸空气一样,但对于我来说,我无法解决这个问题,我在这里感到窒息!

我错过了什么?

所以从评论中,我看到你正在使用 Visual Studio for Mac (VS4M) 作为你的 IDE 并且你正在使用单视图模板应用程序但正在尝试获取视图以适应横向和纵向。

如果您在 VS4M 中打开故事板,您应该会看到如下内容:

我在下一张图片中添加了一些控件(图片、用户名、密码和登录按钮),只是为了展示我将如何使用 VS4M[=] 中的 iOS 设计器创建布局41=]

这里的关键点是切换到横向,然后按 Edit Traits > Edits apply to Compact Height only

您可以阅读有关尺寸的更多信息 Class (Compact/Regular) here 但这是一张让您了解它的好图片:

下一步是对用户名、密码和登录按钮进行自动布局。

您将看到如下视图:

我已经把这个上传到我的GitHub,如果你想要link是here,你可以看看。

Autolayout 是 Xamarin.iOS 开发中最难解决的领域之一,因此我不会感到沮丧。此外,此 link 可提供有关使用 VS4M

进行自动布局的更多信息

如果您不是在 Autolayout 中而是在代码中进行操作,那么如果您可以 post 该代码,我可以查看并提供帮助。

更新 - 自适应布局

因此,实际上change/remove landscape/portrait 的某些限制,您必须使用已安装的 属性。在这里,我将图像的中心约束更改为仅在 Any 宽度和 Regular 高度(又名纵向)时安装,然后在 'Any' 时安装其左侧(前导)约束宽度和 'Compact' 高度(又名横向)

然后为了让它更好看,我将登录名和密码文本框移到了右边。首先,我必须使当前的用户名文本框垂直对齐约束仅安装在宽度 Any 和高度 Regular(纵向)上,然后在宽度 [=16= 的超级视图顶部创建一个新的顶部约束] 和高度 Compact(横向)。

然后最后一点是仅在宽度 Any 和高度 Regular(纵向)上安装用户名和密码文本框的前导(左)水平间距约束,并创建两个新的前导(左)水平间距约束设置为安装在宽度 Any 和高度 Compact(横向)上的图像的尾部(右),请记住将这些约束的常量设置为 0(并按回车键键盘设置值)像这样:

然后应用程序将如下所示:

我已经用这个实现更新了我的 GitHub 解决方案。抱歉所有图片,但我认为最好用图片解释 Autolayout。