2011-06-02 46 views
10

Bir kullanıcının web uygulamasında ne kadar yakın olduğunu algılamanın bir yolunu bulmaya çalışıyorum; böylece bir menüyü tıklattığında, menü, yakınlaştırmadan bağımsız olarak aynı boyutta kalır. Bunu yapmak için, menünün boyutunu büyütmeye göre uygun şekilde ölçekleyebilmem gerekir. Bunu yapmanın bir yolu var mı?iPad Büyütme Ölçeği Algılama

+0

Bu çok soruyu yanıtlamak için etrafa çok uğraştıktan sonra. Bir ödül belirleme. –

cevap

6

İlk olarak, tüm UIWebView, UIScrollView alt görünümüne sahiptir. Yani, bunu elde etmek için aşağıdakileri yapabilirsiniz:

for (UIView * v in [_webView subviews]) { 

    if ([v isKindOfClass:[UIScrollView class]]) { 
     UIScrollView * s = (UIScrollView*)v; 
     // use the scrollview 
    } 

} 

Bundan sonra zum ölçeğini öğrenmek için UIScrollView kullanabilirsiniz. Ne yazık ki, mülkiyet zoomScale ne istediğimizi, bu durumda, söylemezse, ancak aşağıdaki gibi contentSize ve scrollview ait frame kullanabilirsiniz: Bundan sonra

CGFloat zoomScale = s.contentSize.width/s.frame.size.width; 

, istediğin varsayalım javascript kodunuzu bu zoomScale hakkında bilgilendirmek için. Aşağıdaki kodu kullanabilirsiniz:

[_webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"yourJSZoomScaleVar = %f;", zoomScale]]; 
Umut yardımcı olur!

+0

Maalesef, gerçek bir Web sayfası bağlamında aradığımı biliyorum. Daha fazla araştırma, bunun window.innerWidth/screen.width öğesinin bir türevi olacağını göstermektedir. Yarın daha ileriye bakma şansı olacak. –

+0

Bu gerçekten yardımcı oluyor! Teşekkürler! – Mason