2016-09-13 1 views
0

私はIOSとAndroidでappceleratorプロジェクトを持っています。imageviewは常にtableviewの中心になります

問題は、行内にイメージビューを持つテーブルビューが必要な場合です。 Androidでは、左の枠の近くにimage1を置くことができますが、iOSの画像ビューは常に中央に配置されます。 問題はどこですか?

おかげ

マイコード:

for (i=0;i<NRegistros;i++){ 

    TablaSerieTermostatos[i]=rows.field(0); 
    leoSerie=rows.field(0); 
    TablaPinTermostatos[i]=rows.field(1); 
    leoPin=rows.field(1); 
    TablaNombreTermostatos[i]= rows.field(2); 
    TablaTemperTermostatos[i]= rows.field(345); 

    var nuevaRow=Ti.UI.createTableViewRow({height:200, backgroundSelectedColor: "white"}); 

    var cuadroexterno=Ti.UI.createView({ 
     id: "CuadroExterno", 
     backgroundColor: "white" , 
     height: "100%", 
     width: "100%", 
     left:"0%", 
     top:"5%" 
    }); 
    var titulo1=Ti.UI.createLabel({ 
     id: "NombreTerm", 
     text: TablaNombreTermostatos[i], 
     font: {fontSize: '27'}, 
     color: "#0060a7" , 
     textAlign: Ti.UI.TEXT_ALIGNMENT_LEFT, 
     left: "50%", 
     top:"35%" 
    }); 
    var imagen1=Ti.UI.createImageView({ 
     id: "Radiador",   
     image: "/Copiar Emisor.png", 
     height: "70%", 
     //left:"15%", 
     top:"10%" 
    });     


    if (Ti.Platform.name=="iPhone OS") { 
     imagen1.right = "40%"; 
     titulo1.left = "55%"; 
    }  
    else imagen1.left="15%"; 

    cuadroexterno.add(imagen1); 
    cuadroexterno.add(titulo1); 
    nuevaRow.add(cuadroexterno);   

    $.TablaCopiar.appendRow(nuevaRow); 
    rows.next(); 
}  

合金:

<TableView id="TablaCopiar" top="20%" height="80%" left="0%" zindex="20" width="100%" backgroundColor="white" visible="false" separatorColor="gray" > 
    </TableView> 

The screen in IOS

The screen in Android

+0

は、あなたがあなたのテーブルビューの行をしたいかのシンプルなデザインの概要を提供することはできますか?なぜなら、あなたのアプリのどこかにUI計算がいくつかある可能性があるため、このコードから問題を見つけることができないからです。次に、合金を使用してコードを改善することをお勧めします。 –

+0

Prashantに感謝します。IOSとAndroidのコードと画面でより多くの情報を見ることができます。私はプロジェクトで合金を使用します。 –

答えて

1
".views" : { 
    width : Titanium.UI.FILL, 
    height : Titanium.UI.FILL, 
    backgroundColor : "white" 
} 

".left-images" : { 
    left : 70, 
    height : '70%', 
    image : "/Copiar Emisor.png" 
} 

".row-labels" : { 
    textAlign : Ti.UI.TEXT_ALIGNMENT_LEFT, 
    color : "#0060a7", 
    font: {fontSize: '27'} 
} 
TableRow.tss

var table_rows = []; 

for (i=0;i<NRegistros;i++){ 
    TablaSerieTermostatos[i]=rows.field(0); 
    leoSerie=rows.field(0); 
    TablaPinTermostatos[i]=rows.field(1); 
    leoPin=rows.field(1); 
    TablaNombreTermostatos[i]= rows.field(2); 
    TablaTemperTermostatos[i]= rows.field(345); 

    table_rows.push(Alloy.createController('TableRow', { 
     text : TablaNombreTermostatos[i] 
    }).getView()); 

    rows.next(); 
}  

$.TablaCopiar.data = table_rows; 

TableRow.xml

<Alloy> 
    <TableViewRow height="200" backgroundSelectedColor="white"> 
     <View class="views"> 
      <Label id="NombreTerm" class="row-labels" /> 
      <ImageView id="Radiador" class="left-images"/> 
     </View> 
    </TableViewRow> 
</Alloy> 

のTableRowとして名前を持つ新しいコントローラを作成した後、このコードを試してみてください

TableRow.js

$.NombreTerm.text = $.args.text; 
+0

おかげでPrashant。私はコードを修正して解決しました。 –

関連する問題