我最近发现,我应该将所有尺寸/尺寸放在dimens.xml
中,以便我支持多种屏幕分辨率的Android应用。
在iOS中我是否应该做类似的事情来支持多种屏幕分辨率?我在后端编写了所有视图(没有故事板),当我想要定位视图(填充,边距等)时,我只需将硬编码的数字添加到X
和Y
属性中视图的frame
。 Width
,Height
,Font size
等同样的事情。我想我编写的iOS应用程序在这样的不同屏幕分辨率上会显得很尴尬吗?
顺便说一下,我正在使用Xamarin(Xamarin.Android和Xamarin.iOS)。但我会理解使用本机代码的答案。
答案 0 :(得分:3)
在iOS中没有类似dimens
的内容。
我认为使用AutoLayout
的正确约束可以在padding
,margins
,Width
,Height
等处理得很好。
但是,如果你仍想找到实现它的方法,这里有一个临时的解决方法。
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是可以检查您的设备类型的插件。
答案 1 :(得分:0)
你可以创建一个空的swift文件,并使用struct而不是dimens.xml for Android
struct Padding {
static let left = 10
static let right = 10
static let top = 10
static let bottom = 10
}