2011-10-25 3 views
1

최근에 내 Jpeg 드래그 기능을 iOS Safari에서 사용할 수 있도록 js 터치 매핑 기능 (여기 어딘가에서 stackoverflow에 있음)을 내 페이지에 추가했습니다 (드래그 앤 드롭터치 매핑과 자바 스크립트로 모바일에 초점 맞추기

function touchHandler(event) 
{ 
var touches = event.changedTouches, 
    first = touches[0], 
    type = ""; 

    switch(event.type) 
{ 
    case "touchstart": type = "mousedown"; break; 
    case "touchmove": type="mousemove"; break;   
    case "touchend": type="mouseup"; break; 
    default: return; 
} 
altKey, shiftKey, metaKey, button, relatedTarget); 

var simulatedEvent = document.createEvent("MouseEvent"); 
simulatedEvent.initMouseEvent(type, true, true, window, 1, 
          first.screenX, first.screenY, 
          first.clientX, first.clientY, false, 
          false, false, false, 0, null); 

first.target.dispatchEvent(simulatedEvent); 
event.preventDefault(); 
} 

모든 꽤 잘 ... 작동 내가 입력 또는 텍스트 영역 (페이스 북의 코멘트를 집중하는 경우를 제외하고이 함수는

) 지금까지 내가 본대로,이 매핑없이 작동하지 않습니다 플러그인, 특히) 그리고 iOS 키보드가 나타납니다.

입력 위에 텍스트를 입력하고 "보내기"버튼을 클릭하면 함수가 시뮬레이션 된 마우스 이벤트에 잘못된 Y 좌표를 표시합니다 (키보드가 페이지 높이를 변경하기 때문에이 문제가 발생한다고 생각합니다). 그 버튼 어딘가에

입력이 흐리지 만 보내기 버튼이 클릭되지 않습니다. 그것이 슬프게도 충분하지 않은 것처럼, 페이지의 다른 버튼 (송신 된 것 위의 일부 픽셀)이 클릭되고 다른 페이지로 연결됩니다.

입력이 집중되었을 때 매핑을 사용하지 못하게 할 수 있다고 생각했지만 Facebook 주석 플러그인 요소가 전혀 액세스 할 수없는 것으로 보입니다.

어떤 도움에 감사드립니다

, 나는

답변

1

당신은 키보드가 표시 될 때까지 컨텐츠로 밀어 UIView의 연주 적이 ... 지금 일이 문제를 공부하고 있었어요?

- (void)textFieldDidEndEditing:(UITextField *)textField { 
     [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDuration:0.5]; 
    [UIView setAnimationBeginsFromCurrentState:YES]; 
     textfield.frame = CGRectMake(textfield.frame.origin.x, (textfield.frame.origin.y + 100.0), textfield.frame.size.width, textfield.frame.size.height); 
    [UIView commitAnimations]; 
    } 

현재 원점에서 100을 이동 중입니다. 요소에서 필요하면이를 변경할 수 있습니다. 또한 텍스트를 입력 할 때 키보드를보기에서 제거하는 코드를 추가해야합니다.

 - (void)textFieldDidEndEditing:(UITextField *)textField { 
      [UIView beginAnimations:nil context:NULL]; 
     [UIView setAnimationDelegate:self]; 
     [UIView setAnimationDuration:0.5]; 
     [UIView setAnimationBeginsFromCurrentState:YES]; 
textfield.frame = CGRectMake(textfield.frame.origin.x, (textfield.frame.origin.y + 100.0), textfield.frame.size.width, textfield.frame.size.height); 
     [UIView commitAnimations]; 

}

관련 문제