2011-06-15 97 views
1

我想知道是否有人可以解釋爲什麼鈦視圖代理的擴展在iOS上不起作用,但在Android平臺上工作得很好。擴展鈦對象不適用於iOS

鈦移動SDK:1.7.0RC1和1.6.2 的iOS SDK:4.2 的Android API(谷歌API)的2.2

這是一個非常簡單的例子:

var useCaseView = Ti.UI.createView({ 
layout: 'vertical', 
right:0, 
left:0, 
top:0, 
height:200, 
backgroundColor:'#fff' 
}); 



var outputSwitch = Ti.UI.createSwitch({ 
value: true 
}); 



outputSwitch.setTopValue = function(newValue) { 
Ti.API.info('setTop' + newValue); 
outputSwitch.top = newValue; 
}; 



outputSwitch.setTopValue(50); 



useCaseView.add(outputSwitch); 

我試圖完成的是向交換機的視圖代理(在這種情況下爲setTopValue)添加一個方法,並在事實之後調用它。

這在Android上正常工作,但在iOS上,Ti.API.info調用甚至沒有命中,表明它只是忽略該方法。

雖然這個例子很簡短,但我真正想做的是「子類」開箱即用的用戶界面組件,並添加一些常用方法讓他們共享,以減少重複碼。

有誰知道如果iOS SDK會以某種方式禁止子類別它的「香草」UI組件?

+0

你試過'outputSwitch.prototype.fsetTopValue = function'? – bh88 2011-06-15 18:49:31

+0

過去,我們在Titanium中使用代理對象的原型時遇到了問題。但是outputSwitch.fsetTopValue =函數。 。 。足以讓它工作。用「get/set」作爲你的函數名的開頭就說明了它的一個問題。 – Robbie 2011-06-15 19:22:51

回答