我正在 Xamarin for iOS 中迈出第一步,并且很难弄清楚如何创建与分辨率无关的 View 。
我在 View 中有一个文本框,对齐使其边缘与 iPhone 6S 的边缘相交。当我将 View 更改为 Iphone 4S 时,文本框的边缘在 View 之外。
我试图将约束拖到边缘,几乎点击了每个按钮,并试图找到一些如何制作它的示例,以便调整 View 大小以适合视口(viewport),但我无法使其工作。我还摆弄了 View 的不同模式(Aspect Fit、Scale to Fill 等),但这没有什么区别。
我很想举一个简单的例子来说明如何创建独立于分辨率或多分辨率的表单或 View ,无论 iPhone 的屏幕分辨率如何,它的显示方式都类似。
最佳答案
经历过和你一样的痛苦,我的建议有两个:
- 看看 Cirrious FluentLayouts 包,你可以 从 NuGet 获取。
在简化自动布局的各种问题方面有巨大帮助,特别是如果您决定(像我一样)只放弃 GUI 布局工具并采用完整的编程方法。
它将允许这样的结构:
this.AddConstraints
(
_navBar.AtTopOf(this, UIApplication.SharedApplication.StatusBarFrame.Height),
_navBar.AtLeftOf(this),
_navBar.WithSameWidth(this),
_navBar.Height().EqualTo(Hamburger.HamburgerHeight),
_scrollView.Below(_navBar),
_scrollView.AtLeftOf(this),
_scrollView.WithSameWidth(this),
_scrollView.Bottom().EqualTo().TopOf(_pageControl),
_pageControl.Above(_toolBar),
_pageControl.AtLeftOf(this),
_pageControl.WithSameWidth(this),
_pageControl.Height().EqualTo(pageControlHeight),
_toolBar.Above(_button),
_toolBar.AtLeftOf(this),
_toolBar.WithSameWidth(this),
_toolBar.Height().EqualTo(toolHeight),
_button.AtRightOf(this),
_button.AtBottomOf(this),
_button.Height().EqualTo(buttonHeight)
);
- 请注意,自从……我相信是 iOS 8? ...你现在需要使用 LaunchScreen.xib 让您的应用程序正确拾取设备 自动布局将使用的分辨率。
这是我仍然需要使用图形布局工具的一个领域 - 只需一次,很高兴地说。
关于ios - Xamarin for iOS 中的分辨率独立性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38172625/