Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# VS for Mac-使用自动布局进行横向和纵向视图_C#_Xamarin_Xamarin.ios_Autolayout_Visual Studio Mac - Fatal编程技术网

C# VS for Mac-使用自动布局进行横向和纵向视图

C# VS for Mac-使用自动布局进行横向和纵向视图,c#,xamarin,xamarin.ios,autolayout,visual-studio-mac,C#,Xamarin,Xamarin.ios,Autolayout,Visual Studio Mac,我需要帮助,花了一整天的时间搜索各种youtube视频和谷歌等等,我已经撞到了那堵墙 我使用的是Visual Studio for Mac,基本上,我的登录屏幕在纵向上看起来不错,但在横向上却不是这样,所以我想用重新设计的屏幕显示不同的视图,特别是在横向上 Microsoft论坛建议我使用OnSizeAllocated事件来确定方向,这听起来不错,但我就是不知道你是如何做到的 我有一个没有任何事件的视图控制器。我只有一个视图,没有任何事件。如果我尝试将代码手动添加到ViewController类

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

我使用的是Visual Studio for Mac,基本上,我的登录屏幕在纵向上看起来不错,但在横向上却不是这样,所以我想用重新设计的屏幕显示不同的视图,特别是在横向上

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

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

设计符合方向的屏幕必须像呼吸空气一样,但对于我的生活来说,我就是做不出来,我在这里窒息


我遗漏了什么?

因此从评论中,我看到您正在使用
Visual Studio for Mac
VS4M
)作为您的IDE,您正在使用单视图模板应用程序,但正在尝试使视图适应横向和纵向

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

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

这里的关键点是切换到横向,然后按
编辑特征
>
编辑仅适用于紧凑高度

您可以阅读更多关于尺寸等级(紧凑型/常规型)的信息,但这是一张让您头脑清醒的好图片:

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

然后,您将看到如下视图:

我已经把这个上传到我的GitHub上了,如果你想要链接的话,你可以看看

在Xamarin.iOS的开发中,自动布局是一个比较困难的领域,所以我不会感到沮丧。此外,这有助于了解有关VS4M自动布局的更多信息

如果您不是在自动布局中,而是在代码中,那么如果您可以发布代码,我可以查看并提供帮助

更新-自适应布局

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

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

最后一位是将用户名和密码文本框的前导(左)水平间距限制仅安装在宽度
Any
和高度
Regular
(纵向)上,并创建两个新的前导(左)水平间距限制设置为尾随(右)对于安装在width
Any
和height
Compact
(横向)上的图像,请记住将这些约束的常数设为0(并在键盘上按enter键设置值),如下所示:

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


我已使用此实现更新了我的解决方案。对于所有的图片,我很抱歉,但我认为最好用图片来解释自动布局。

您是否可以发布更多关于登录屏幕的信息?您是如何构建的,等等。如果可能的话,我会尝试使用AutoLayout,但在您提供更多关于您的实现的信息之前,我无法告诉您,如果您使用的是xib/故事板或代码,您可以发布它吗?您能听一听,然后就相应地调整/重新定位视图?@Iain Smith-我真的没听说过xib-VS for MAC都是基于Xamarin构建的故事板,但是没有Xaml文件,因为我整天都看到他们使用Xaml堆叠控件的帖子。(我想最后一句话正好说明我有多困惑)。无论如何,我有一张背景图片,下面是常用的用户名和密码控件,下面是登录按钮。@Mark-晚饭后,我会再次拿出我的Mac电脑,寻找那个巨大的通知事件。请问在哪里加?在视图控制器或其他地方?因此,如果您使用的是Xamarin.iOS,那么将有XIB/故事板或只是视图代码(故事板只是具有一些额外导航功能的XIB的集合)。如果您使用的是Xamarin.Forms,那么布局的核心项目中将有Xaml文件。因此,在登录屏幕上,应该只显示您以编程方式完成的代码,或者一个故事板文件或xaml文件,具体取决于您如何实现它。如果你把这句话加到你的问题上,我应该能帮上更多的忙。我今天早上醒来,几乎高兴得哭了。我真的很感谢你投入的时间和精力,并且从那以后一直在玩弄限制。不用担心,很高兴能帮上忙。如果这解决了您的问题,请记住将答案标记为已接受,以便其他人可以看到。我想我只是认为您可以有一个纵向视图,例如控件垂直对齐,然后是另一个横向视图,在我们的示例中,徽标将位于最左侧,用户名和密码控件位于左侧鼠标中键和右侧的登录按钮。
单击