Создать настраиваемый элемент управления для выбора

См. Снимок экрана настраиваемого средства выбора:

скриншот

Я знаю, что в Titanium нет способа стилизовать элемент выбора. Это средство выбора должно работать только на iOS (только iPad). Я думал, что могу взломать элемент управления TableView, чтобы использовать его вместо средства выбора для достижения желаемого стиля. Это разумно? Как мне привязать TableViewRows, чтобы один всегда был в центре, как в типичных элементах управления?


person ShawnCBerg    schedule 01.05.2013    source источник


Ответы (1)


это сложно, я бы сказал, вам просто нужны только представления и метки и событие смахивания (вы можете распознать, если кто-то смахивает вверх и вниз) и просто меняет метки. вы можете сделать это с помощью функции обратного вызова, я надеюсь, что этот код поможет вам (мы создали настраиваемое средство выбора с этим кодом)

с использованием сплава

XML

<View  id="numOfIntrusionsPickerContainer" class="compositeWrapperPicker noMargins" >
<View  id="numOfIntrusionsButtonContainer" class="horizontalWrapper"></View>

CSS

".compositeWrapperPicker" : {
    height: Ti.UI.SIZE,
    layout: "composite",
    width:Ti.UI.SIZE
},
".horizontalWrapper" : {
    width: Ti.UI.SIZE,
    height: Ti.UI.SIZE,
    layout: "horizontal"
},

JS

// INSTANTIATION
var args = arguments[0] || {};
var widthValue = 120;
var pickerEnabled = true;

if(args.width != null){
    widthValue = args.width;
}
if(args.isEnabled != null){
    pickerEnabled = args.isEnabled;
}
// STYLING


// ADDITIONS 

// pressed arg can be: true,false,null. false & null are equal
// true = 'yes' is Pressed at creation, false/null = 'no' is pressed



var btn_main = Ti.UI.createButton({
    top: 5,
    bottom: 0,
    left:0,
    right:5,
    height: 45,
    enabled: pickerEnabled,
    width: widthValue,
    borderRadius: 5,
    backgroundImage: "/images/bttn_gray_flex.png",
    backgroundSelectedImage : "/images/bttn_gray_press_flex.png",
    backgroundFocusedImage  : "/images/bttn_gray_press_flex.png"
    });

var picker_divider = Ti.UI.createImageView({
    right: 43,
    bottom:2,
    touchEnable:false,
    focusable:false,
    image: "/images/Divider_picker.png"
}); 
var picker_arrows = Ti.UI.createImageView({
    right: 16,
    top: 17,
    touchEnabled: false,
    focusable: false,
    image: "/images/bttn_selector_arrow.png"
}); 

$.pickerContainer.add(btn_main);
$.pickerContainer.add(picker_divider);
$.pickerContainer.add(picker_arrows);



// CODE



// LISTENERS
if(args.callBack != null){
    btn_main.addEventListener("click",function(_event){
        args.callBack(_event);  
    });

}
person Mario Galván    schedule 02.05.2013