android - iOS中有没有类似于Android的dimens.xml的东西?

标签 android ios xamarin

我最近发现,对于要支持多种屏幕分辨率的 Android 应用程序,我应该将所有尺寸调整/尺寸放在 dimens.xml 中。

我应该在 iOS 中做一些类似的事情来支持多种屏幕分辨率吗?我在后端(没有 Storyboard )对所有 View 进行编码,当我想定位 View (填充、边距等)时,我只需将硬编码数字添加到 X View 的 frame 的 Y 属性。 WidthHeightFont size 等也是一样。我想我这样编码的 iOS 应用程序在不同的屏幕分辨率下看起来会很尴尬像这样?

顺便说一下,我使用的是 Xamarin(Xamarin.Android 和 Xamarin.iOS)。但我会理解使用 native 代码的答案。

最佳答案

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

我相信 AutoLayout 的适当约束可以很好地处理 paddingmarginsWidth高度

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

创建一个名为 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;

Here是可以检查您的设备类型的插件。

关于android - iOS中有没有类似于Android的dimens.xml的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47319937/

相关文章:

android - Salesforce 移动 sdk 抛出错误 com.android.volley.servererror,基本网络执行请求 201

android - 如何以编程方式添加 ListBoxItem?

Android:解析 XML 数据的最佳解析器

ios - 将用户输入的字符串转换为有效的文件名

c# - Xamarin列表中的元素重叠

android - Xamarin - 找不到与给定名称匹配的资源(在 'theme' 处,值为 '@style/MyTheme')

android - IntentService 创建的通知总是使用错误的 Intent

javascript - jQuery AJAX 适用于移动 safari,但不适用于 UIWebView?

c# - onbackpressed 找不到合适的方法来覆盖 xamarin

iphone - 如何根据给定的坐标移动 UIImage