ios - Xamarin for iOS 中的分辨率独立性

标签 ios xamarin xamarin.ios

我正在 Xamarin for iOS 中迈出第一步,并且很难弄清楚如何创建与分辨率无关的 View 。

我在 View 中有一个文本框,对齐使其边缘与 iPhone 6S 的边缘相交。当我将 View 更改为 Iphone 4S 时,文本框的边缘在 View 之外。

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

我很想举一个简单的例子来说明如何创建独立于分辨率或多分辨率的表单或 View ,无论 iPhone 的屏幕分辨率如何,它的显示方式都类似。

最佳答案

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

  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 让您的应用程序正确拾取设备 自动布局将使用的分辨率。

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

关于ios - Xamarin for iOS 中的分辨率独立性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38172625/

相关文章:

android - 在 Flutter 应用程序中持久化数据

objective-c - 使用 NSFetchedResultsController 将谓词从核心数据模型提取到各个部分中

xaml - Xaml 中的列表<颜色>

c# - 从 UIApplication 继承类中导航

xaml - 在Xamarin.Forms的图像上方叠加标签,列表和按钮

c# - Xamarin.Mac 中有任何类似的 "ListView"UI 控件吗?

xamarin - 运行 Nuget 恢复时,MVVMCross 无法恢复 - 错误 : MvvmCross. Core' 已具有为“MvvmCross.Platform”定义的依赖项

ios - 为 iPhone 和 iPad(普通版和 Retina 版)制作通用游戏

ios - 如何克隆 UIImageView

xamarin - 当用户关闭应用程序时,如何处理 Xamarin iOS 上的用户点击本地通知?