iOS 中是否有类似于 Android 的 dimens.xml 文件?

4
我最近发现,为了支持多个屏幕分辨率的Android应用程序,我需要将所有的尺寸/尺寸放在dimens.xml中。那么在iOS中是否有类似的方法来支持多个屏幕分辨率呢?我在后端编写所有视图(没有storyboards),当我想要定位一个视图(填充,边距等)时,我只是将硬编码的数字添加到视图的frameXY属性中。对于WidthHeightFont size等也是如此。我想象一下,我像这样编写的iOS应用程序在不同的屏幕分辨率上看起来会很奇怪?顺便说一句,我正在使用Xamarin(Xamarin.Android和Xamarin.iOS)。但我可以理解使用本机代码的答案。
2个回答

6

iOS中没有像dimens这样的东西。

我相信使用AutoLayout的适当约束可以很好地处理paddingmarginsWidthHeight等问题。

但是,如果您仍然想找到一种实现dimens的方法,这里有一个临时解决方案。

创建一个名为Dimens的静态类。

public static class Dimens
{
    public static int Height
    {
        get {
            string device = DeviceHardware.Model;

            if (device.Contains("iPhone4"))
            {
                return 10;
            }
            else if (device.Contains("iPhone5"))
            {
                return 15;
            }
            else if (device.Equals("iPhone 6") || device.Equals("iPhone 6S"))
            {
                return 20;
            }
            else if (device.Equals("iPhone 6 Plus") || device.Equals("iPhone 6S Plus"))
            {
                return 25;
            }
            //other device 

            return 0;
        }
    }      
}

使用方法:

View.Height = Dimens.Height;

这里有一个插件可以检查您的设备类型。


1+ 对于我来说很好,因为我也这么想。 - Harshad Pansuriya

0

你可以创建一个空的Swift文件,使用结构体代替Android中的dimens.xml

struct Padding {
    static let left = 10
    static let right = 10
    static let top = 10
    static let bottom = 10
}

1
那么我该如何选择在我的应用程序运行的设备上使用哪个“struct”或Swift文件呢? - Drake

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接