0

在鈦有可能隱藏像這樣的視圖:隱藏在鈦的視圖,使得其不採取物理空間

$.foo.hide() 

$.foo.visible = false 

然而,在兩種情況下,對象似乎仍然需要物理空間。它只是看不見的。換句話說,它類似於CSS屬性visibility: hidden

我想它,讓它消失,不採取任何物理空間在寬度和高度方面,所以它類似於CSS屬性display: none

我怎樣才能做到這一點?

最好哈克解決方案,我有如下:

$.foo.width = 0; 
$.foo.height = 0; 
$.foo.left = 0; 
$.foo.right = 0; 

但是,這意味着,當我想讓它再一次看到,我要回設置到其原始值所有這些特性,這是一個痛苦和很難維護。

回答

1

首先,不要害怕做一些硬編碼的;)

來到您的查詢,沒錯,這是事實,隱藏視圖只是隱藏它從用戶界面,但物理空間仍然存在。

做你想做什麼,你需要將隱藏是刪除視圖&展出創建它,或者你可以在一些棘手的方式使用絕對佈局

其他方式可以使用轉換屬性像這樣的動畫這樣的觀點:

// on hide 
$.foo.animate({ 
    duration : 100, 
    transform : Ti.UI.create2DMatrix({scale:0}) 
}, function() { 
    $.foo.visible = false; 
}); 


// on show 
$.foo.visible = true; // we need to make it visible again before resetting its UI state since we hid it after completion of animation in above code 
$.foo.animate({ 
    duration : 100, 
    transform : Ti.UI.create2DMatrix() // passing empty matrix will reset the initial state of this view 
}); 

OR

這也可以工作,但從來沒有試過這樣:

// on hide 
$.foo.transform = Ti.UI.create2DMatrix({scale:0}); 
$.foo.visible = false; 

// on show 
$.foo.visible = true; 
$.foo.transform = Ti.UI.create2DMatrix(); 
+0

二維矩陣方法似乎沒有工作。它設法使視圖消失,但不幸的是它仍然需要物理空間。 –

+0

嘗試使用一些較小的縮放值(如0.05),如果它也不起作用,那麼您唯一的選擇是降低高度/寬度或刪除/添加視圖 –

+0

確認矩陣方法不適用於SDK 7.0.2 – fillobotto

相關問題