2012-08-03 2 views
1

iOS 4.0 이상 및 Android 2.3 이상을 타겟팅하는 Adobe AIR에서 앱을 만들고 있습니다. 임베디드 YT 비디오에 대한 iOS 탄력적 인 스크롤을 비활성화하려고했습니다. 사용자가 플레이어의 IFrame을 누르면 전체 비디오가 넘쳐서이 문제를 해결할 방법을 찾을 수 없습니다.임베디드 YT IFrame에서 iOS 탄력적 스크롤 사용 중지

이 동작을 방지하기 위해 이벤트 리스너를 추가했지만 작동하지 않습니다.

그런데 IFrame에서 일어나는 일을 실제로 제어 할 수 없다는 것을 알고 있습니다. 빠르고 캔 한 솔루션은 이벤트를 잡을 투명 캔버스 나 div처럼 프레임 위에 직접 요소를 넣는 것입니다. 사용자가 플레이어의 버튼을 누를 수 없으므로 전혀 이상적이지 않습니다.

의견이나 제안이 있으십니까?

감사합니다.

답변

0

해결책을 찾았습니다.

탄성 스크롤을 사용하지 않으려면 UIWebView (StageWebView 아래의 기본 iOS 구현)에 액세스해야합니다.

일단 Adobe Native Extension (ANE) 설정을 사용하면 상대적으로 간단합니다. (훌륭한 ANE 마법사/생성기는 여기에서 찾을 수 있습니다. https://github.com/freshplanet/ANE-Wizard)

iOS 5의 경우 간단합니다. webView.scrollView.bounces = NO;

iOS 4를 지원하려면 좀 더 복잡해집니다. webView.scrollView가 편리하지 않으므로이 뷰를 수동으로 찾아야합니다. 이 도움이

NSString *currSysVer = [[UIDevice currentDevice] systemVersion]; 
if ([currSysVer compare:@"5.0" options:NSNumericSearch] != NSOrderedAscending) { 
    // iOS 5 is straightforward 
    webView.scrollView.bounces = NO; 
} 
else { 
    // iOS 4 requires a bit more of work 
    UIScrollView *scrollView = nil; 
    for (UIView *subview in [webView subviews]) 
    { 
    if ([subview isKindOfClass:[UIScrollView class]]) { 
     scrollView = (UIScrollView *)subview; 
    } 
    } 
    if (scrollView != nil) { 
    scrollView.bounces = NO; 
    } 
} 

희망 : 아이폰 OS 4, 5 모두이 같은 것입니다 처리

객관적인-C 코드 블록!