我想知道是否有人可以解釋爲什麼鈦視圖代理的擴展在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組件?
你試過'outputSwitch.prototype.fsetTopValue = function'? – bh88 2011-06-15 18:49:31
過去,我們在Titanium中使用代理對象的原型時遇到了問題。但是outputSwitch.fsetTopValue =函數。 。 。足以讓它工作。用「get/set」作爲你的函數名的開頭就說明了它的一個問題。 – Robbie 2011-06-15 19:22:51