0

Я хочу перетащить вертикально изображение в титановом аппликаторе и остановиться, когда на экране отображается вся высота представления. При запуске вид имеет высоту 140 и нижнюю часть -120 так что я могу кусок тем, что я могу начать перетаскивать:Вертикальное перетаскивание (touchMove) вид призрака титана

Here is the screenshot

Это, как я хочу вертикально перетащить " myView ", ось x остается равной 0, поэтому я могу только перетаскивать ее снизу вверх, цель состоит в том, чтобы остановить перетаскивание, когда отображается вся высота myView (весь вид myView) .

var WIDTH = (OS_ANDROID) ? Ti.Platform.displayCaps.platformWidth/dpi : Ti.Platform.displayCaps.platformWidth; 
var HEIGHT = (OS_ANDROID) ? Ti.Platform.displayCaps.platformHeight/dpi : Ti.Platform.displayCaps.platformHeight; 
var sx = 0; 
var sy = 0; 
var cx = 0; 
var cy = 0; 
var xDistance = 0; 
function onTouchStart(e) { 
    // start movement 
    sx = e.x; 
    sy = e.y; 
    cx = e.x; 
    cy = e.y; 
    console.log(e.x); 
} 

function onTouchMove(e) { 
    xDistance = cx - sx; 
    var yDistance = cy - sy; 

    var points = e.source.convertPointToView({ 
     x: e.x, 
     y: e.y 
    }, $.single); 


$.myView.applyProperties({ 
     left: 0, 
     top: points.y, 
     opacity: 1 
    }); 

/*------------------------------------------------------ 
* HERE I TRY TO DETECT IF myView HEIGHT IS SHOWN ENTIRELY 
* is myView.top + myView.height > viewport ? 
------------------------------------------------------*/ 
var t = $.myView.top + $.myView.height; 
if(t >= HEIGHT){ 
    alert('all myView is visible now ???'); 
    return; // <= why this has no effect ?? 
} 

cx = e.x; 
cy = e.y; 

} 
function onTouchEnd(e) { 
    // check xDistance 
} 

$.myView.addEventListener("touchmove", onTouchMove); 
$.myView.addEventListener("touchstart", onTouchStart); 
$.myView.addEventListener("touchend", onTouchEnd); 

С помощью этого кода я могу перетащить вертикально myView, но это не останавливается, когда эта высота полностью показана.

Мой первый вопрос: - Как я могу сказать, если myView показан полностью? - Как отключить вертикальное перетаскивание вверх, если отображается вся высота myView?

Спасибо

ответ

0

Функция OnTouchMove должно быть.

function onTouchMove(e) { 

    /*------------------------------------------------------ 
    * HERE I TRY TO DETECT IF myView HEIGHT IS SHOWN ENTIRELY 
    * is myView.top + myView.height > viewport ? 
    ------------------------------------------------------*/ 
    var t = $.myView.top + $.myView.height; 
    if(t >= HEIGHT){ 
     alert('all myView is visible now ???'); 
     return; // <= why this has no effect ?? 
    } 

    xDistance = cx - sx; 
    var yDistance = cy - sy; 

    var points = e.source.convertPointToView({ 
     x: e.x, 
     y: e.y 
    }, $.single); 


    $.myView.applyProperties({ 
     left: 0, 
     top: points.y, 
     opacity: 1 
    }); 

    cx = e.x; 
    cy = e.y; 

} 
+0

Большое спасибо, я попробую это – user44321

+0

Здравствуйте, попробовав свой код, перетаскивание не останавливается, когда вид полностью виден. – user44321

+0

Я имею в виду «возврат» внутри, если условие не работает – user44321

 Смежные вопросы

  • Нет связанных вопросов^_^