【问题标题】:Resolution independence in Xamarin for iOSXamarin for iOS 中的分辨率独立性
【发布时间】:2016-07-04 12:58:07
【问题描述】:

我在 Xamarin for iOS 中迈出了几步,并且很难弄清楚如何创建一个独立于分辨率的视图。

我在视图中有一个文本框,它的边缘与 iPhone 6S 的边缘对齐。当我将视图更改为 Iphone 4S 时,文本框的边缘在视图之外。

我试图将约束拖到边缘,几乎单击了每个按钮并试图找到一些如何制作它的示例,以便视图调整大小以适应视口,但我无法使其工作。我还摆弄了不同的视图模式(Aspect Fit、Scale to Fill 等),但这没什么区别。

我很想提供一个简单的示例,说明如何创建一个独立于分辨率或多分辨率的表单或视图,无论 iPhone 上的屏幕分辨率如何,它们都以相似的方式显示。

【问题讨论】:

标签: ios xamarin xamarin.ios


【解决方案1】:

经历了和你一样的痛苦,我的建议有两个:

  1. 看看 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)
);
  1. 请注意,自从... iOS 8 我相信? ...您现在需要使用 LaunchScreen.xib 让您的应用正确拾取设备 分辨率将被自动布局使用。

这是我仍然需要使用图形布局工具的一个区域 - 只需一次,很高兴。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多