【发布时间】:2011-06-15 18:33:46
【问题描述】:
我想知道是否有人可以解释为什么钛视图代理的扩展在 iOS 上不起作用,但在 Android 平台上却完全正常。
Ti 移动 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 调用甚至没有被命中,这表明它只是忽略了该方法。
虽然这个例子很简短,但我真正想做的是“子类”开箱即用的 Titanium UI 组件,并添加一些常用方法供它们共享,以减少重复代码.
有谁知道 iOS SDK 是否会以某种方式禁止对它的“普通”UI 组件进行子类化?
【问题讨论】:
-
你试过
outputSwitch.prototype.fsetTopValue = function吗? -
过去我们在 Titanium 中使用代理对象的原型时遇到过问题。但是 outputSwitch.fsetTopValue = function 。 . .足以让它工作。原来使用“get/set”作为函数名的开头是个问题。
标签: javascript iphone android titanium