VS for Mac - 使用Autolayout进行横向和纵向视图

时间:2018-03-21 17:21:02

标签: c# xamarin xamarin.ios autolayout visual-studio-mac

我需要帮助,花了一天时间搜索各种YouTube视频和谷歌等我已经碰到了那堵墙!

我正在使用Visual Studio for Mac,基本上,我的Logon屏幕在Portrait中看起来不错,但在Landscape中却不是这样,所以我想用重新设计的屏幕显示不同的视图,特别是对于Landscape。

Microsoft论坛建议我使用OnSizeAllocated事件来确定方向听起来不错,但我无法理解你是如何做到的。

我在View Controller上没有任何事件。我有一个视图,没有任何事件。如果我尝试手动将代码添加到ViewControllers类中,它不喜欢它。如果我尝试在Main.cs中添加它,则不喜欢它或AppDelegate.cs它不喜欢它。

设计屏幕以匹配方向必须像呼吸空气一样,但对于我的生活我只是无法解决它而我在这里窒息!

我错过了什么?

1 个答案:

答案 0 :(得分:0)

因此,从评论中我看到您使用Visual Studio for MacVS4M)作为您的IDE并且您正在使用单一视图模板应用,但正在尝试使视图适应景观和的画像。

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

enter image description here

我在下一张图片中添加了一些控件(图片,用户名,密码和登录按钮),以显示如何使用VS4M

中的iOS设计器创建布局

enter image description here

此处的关键点是更改为横向,然后按Edit Traits> Edits apply to Compact Height only

您可以阅读有关尺寸等级(紧凑/常规)here的更多信息,但这是一个很好的图像来了解它:

enter image description here

下一步是为用户名,密码和登录按钮执行Autolayout。

enter image description here

然后你会有这样的观点: enter image description here enter image description here

我已将此内容上传到我的GitHub,以便您可以查看链接是否为here

Autolayout是让您在Xamarin.iOS开发中获得成功的更难的领域之一,所以我不会沮丧。此外,这个link适用于有关VS4M的Autolayout的更多信息

如果您没有使用Autolayout而是使用代码,那么如果您可以发布该代码,我可以看看并提供帮助。

更新 - 自适应布局

因此,要实际更改/删除横向/纵向的某些约束,您必须使用已安装的属性。在这里,我将图像的中心约束更改为仅在Any宽度和Regular高度(也称为纵向)时安装,然后在“任意”宽度时安装其左(前导)约束'紧凑'高度(又名风景)

enter image description here

然后为了使它更好,我将登录和密码文本框移动到右侧。首先,我必须使当前用户名文本框垂直对齐约束仅安装在宽度Any和高度Regular(纵向)上,然后在宽度为{{1}的超级视图顶部创建一个新的顶部约束}和身高Any(风景)。

enter image description here

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

enter image description here

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

enter image description here enter image description here

我已使用此实施更新了我的GitHub解决方案。对不起所有图片,但我认为最好用图片解释Autolayout。