1

私はチタンを使用しており、テーブルビュー行内にテキストエリアを埋め込もうとしています。テキストエリアは、テーブルビューの行だけでなく、ユーザーが入力するにつれて高さを動的に増加させる必要があります。いくつかの計算が必要であることは知っていますが、アルゴリズムについてはわかりません。誰かが親切にいくつかの指針を提供できますか?

どうもありがとう。

これまでのコード:

var win = Ti.UI.createWindow({
    title: 'My Message'
});

var tableview = Ti.UI.createTableView({
    height: 'auto',
    layout: 'vertical',
    style:Titanium.UI.iPhone.TableViewStyle.GROUPED,
    headerTitle:'Message',
});

var tf = Ti.UI.createTextField({
    width: 200,
    top: 10,
    borderStyle: Ti.UI.INPUT_BORDERSTYLE_ROUNDED
});

var rowTo = Ti.UI.createTableViewRow({
    height: 'auto'
});


var ta = Ti.UI.createTextArea({
    height: 'auto',
    font: [{fontSize: 11}],
    top: 0,
    bottom: 20,
    width: 250,
    height: 50,
    backgroundColor: 'green'
});
var rowMsg = Ti.UI.createTableViewRow({
    height: 'auto'
});

rowTo.add(tf);
rowMsg.add(ta);

tableview.appendRow(rowTo);
tableview.appendRow(rowMsg);

win.add(tableview);
win.open();
4

1 に答える 1

1

ラベルを使用し、その高さを textArea に割り当てます。textArea の「change」eventListener で、ラベルの高さに対して textArea の高さを更新します。以下のコードを参照してください。変更しました。

    var win = Ti.UI.createWindow({
    title : 'My Message'
});

var tableview = Ti.UI.createTableView({
    height : 'auto',
    layout : 'vertical',
    style : Titanium.UI.iPhone.TableViewStyle.GROUPED,
    headerTitle : 'Message',
});

var tf = Ti.UI.createTextField({
    width : 200,
    top : 10,
    borderStyle : Ti.UI.INPUT_BORDERSTYLE_ROUNDED
});

var rowTo = Ti.UI.createTableViewRow({
    height : 'auto'
});

var ta = Ti.UI.createTextArea({
    font : [{
        fontSize : 11
    }],
    top : 0,
    width : 250,
    scrollable : false,
    backgroundColor : 'green',
    height : 'auto'
});

var label = Ti.UI.createLabel({
    width : 250,
    font : [{
        fontSize : 11
    }],
    height : 'auto',
    text : ta.value,
    visible : false
});

var rowMsg = Ti.UI.createTableViewRow({
    height : 'auto'
});

ta.addEventListener('change', function(e) {
    label.text = e.value;
    ta.height = label.height;
    rowMsg.height = label.height;
});

rowMsg.add(label);
rowTo.add(tf);
rowMsg.add(ta);

tableview.appendRow(rowTo);
tableview.appendRow(rowMsg);

win.add(tableview);

win.open();
于 2012-11-30T11:15:34.723 に答える