扩展Titanium对象在iOS上不起作用

时间:2011-06-15 18:33:47

标签: javascript iphone android titanium

我想知道是否有人可以解释为什么钛视图代理的扩展在iOS上不起作用,但在Android平台上运行得非常好。

Ti Mobile SDK:1.7.0RC1和1.6.2 iOS SDK:4.2 Android API :( Google 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调用甚至没有被命中,表明它只是忽略了该方法。

虽然这个例子很简短,但我真正想做的是“子类”开箱即用的Titanium UI组件,并添加一些常用的方法供他们共享,以减少重复的代码

有谁知道iOS SDK是否会以某种方式禁止对其“vanilla”UI组件进行子类化?

1 个答案:

答案 0 :(得分:1)

我们在其他地方收到了答案(或者更确切地说是解决方法):

  

我发现前缀为“get”或“set”的命名函数会导致问题。尝试重命名该功能 - Aaron Saunders

果然,重命名该函数会导致此代码按预期工作。

http://developer.appcelerator.com/question/121114/extending-objects-not-working-on-iphone