正确的方法使UI适应各种iPhone屏幕尺寸

时间:2017-10-20 09:58:56

标签: titanium appcelerator appcelerator-titanium

在钛经典中,我这样做是为了使UI适合各种iPhone屏幕尺寸。

return parseInt((Ti.Platform.displayCaps.platformWidth * val) / 320);

从对象在320点宽度的设备中具有的基本大小开始调整对象的大小。

测试代码

var win = Ti.UI.createWindow();

var testView1 = Ti.UI.createView({
    width : Ti.UI.FILL,
    height : Ti.UI.SIZE,
    top : 0,
    backgroundColor : "#2196F3",
    layout : "vertical"
});

var testView2 = Ti.UI.createView({
    width : Ti.UI.FILL,
    height : Ti.UI.SIZE,
    bottom: getSize(20),
    layout : "horizontal"
});

testView2.add(

    Ti.UI.createView({
        width : getSize(50),
        height : getSize(50),
        left : getSize(20),
        borderRadius : getSize(25),
        backgroundColor : "white"
    }),
    Ti.UI.createLabel({
        width : getSize(200),
        height : Ti.UI.SIZE,
        left : getSize(20),
        text : "Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.",
        color : "white",
        font : {
            fontSize : getSize(14)
        }
    })

);

testView1.add(

    Ti.UI.createLabel({
        width : Ti.UI.FILL,
        height : getSize(50),
        top : getSize(20),
        text : "Lorem ipsum",
        color : "white",
        font : {
            fontSize : getSize(14),
            fontWeight : "bold"
        },
        textAlign : "center",
    }),

    testView2

);

win.add(testView1);
win.open();

function getSize(val){
    return parseInt((Ti.Platform.displayCaps.platformWidth * val) / 320);
}

没有getSize()函数的结果

enter image description here

getSize()函数的结果

enter image description here

这是一个很好的方法吗?

1 个答案:

答案 0 :(得分:2)

有一点我不确定您是使用“dp”作为尺寸系统的标准单位还是“像素(px)”,但是从您的第一个屏幕截图中,您似乎没有使用“dp”尺寸系统,因为“dp”系统会为您提供相同的结果,而无需通过此尺寸()方法

但是,在考虑UI创建选择之前,需要考虑的事情很少。

第1点:

如果你的应用UI没有太多内容要显示在可见屏幕上,那么选择显示足够大的元素而不进入滚动模式。

第2点:

如果你的应用的UI有大的内容要像滚动视图中的列表视图,tableview或其他视图一样显示,那么你应该更喜欢创建稍小的元素以滚动方式显示更多内容。

最佳解决方案:

坚持使用Titanium的功能,默认选择“dp”系统&它与 size()方法完全相同。

以下是了解“dp”系统 Titanium DIP Unit System

的详情