阻止用户手动更改滑块值:Titanium

时间:2013-01-10 07:22:10

标签: ios slider titanium appcelerator titanium-mobile

我正在创建一个 ios应用程序,其中窗口包含一个滑块。我正在使用滑块显示已设置的特定值,即用户不应手动更改该值。我按如下方式创建了滑块

var slider = Ti.UI.createSlider({
    min : 0,
    max : 60,
    width : '60%',
    height: 40,
    value : 25,
    enabled : false,
    disabledLeftTrackImage : 'slider.png'
});

此处用户无法更改滑块值,因为我已设置enabled : false。但是当我这样做时,图像变得模糊(图像中的滑块2)。 我希望它与第一个一样,用户不应手动更改滑块值。是否可以这样做?有没有其他方法可以防止用户更改滑块值?任何人都可以帮助我吗?

Slider Image

4 个答案:

答案 0 :(得分:1)

由于您将enabled设置为false,因此滑块会淡化,以向用户显示无法与之交互。正如MaxGabriel所说,等效而不淡化滑块的是在Objective-C中将userInteractionEnabled设置为NO。根据这个link,Titanium中的等价物是在滑块上方添加一个透明层,这样用户的触摸就不会传递给滑块。以下是链接中的代码。

var overlay_view = Ti.Ui.createView({
    height:'100%',
    width:'100%',
    top:0,
    left:0
})
win.add(overlay_view);

答案 1 :(得分:1)

肯定这是不正确的UI,为什么你使用的是用户无法与之交互的滑块?正确使用的是Ti.UI.ProgressBar,否则启用:false灰色行为是正确的,因此用户不会试图摆弄它..

如果没有使用上下文,我不知道,但UI惯例会提出上述内容。

答案 2 :(得分:0)

在Objective-C中,我将userInteractionEnabled属性设置为NO。我认为在Titanium中转换为userInteractionEnabled: false

答案 3 :(得分:0)

杰克先生的回答对我很好。但是我从here获得了更简单的方法。重置touchEnabled : false属性,如var slider = Ti.UI.createSlider({ min : 0, max : 60, width : '60%', height: 40, value : 25, touchEnabeld : false, leftTrackImage : 'slider.png' }); 。我在这里添加它作为答案,因为它对其他人有帮助!!

{{1}}