Xamarin for iOS的分辨率独立性

时间:2016-07-03 17:38:17

标签: ios xamarin xamarin.ios

我在Xamarin for iOS中采取了一些初步步骤,并且非常难以确定如何创建独立于分辨率的视图。

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

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

我想举一个简单的例子,说明如何创建独立于分辨率或多分辨率的表单或视图,无论iPhone上的屏幕分辨率如何,都会同样显示。

1 个答案:

答案 0 :(得分:1)

经历了与你非常相同的痛苦,我的推荐是双重的:

  1. 查看Cirrious FluentLayouts套餐,您可以 来自NuGet。
  2. 在简化自动布局的各种问题方面提供了巨大的帮助,特别是如果你决定(像我一样)放弃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让您的应用程序正确获取设备 分辨率,然后由自动布局使用。
    2. 这是我仍然需要使用图形布局工具的一个领域 - 只需一次,很高兴地说。