2011-02-16 17 views
3

MonoTouchでUIScrollViewを使用してズーム機能を実装しようとしていますが、機能しないようです。MonoTouchでUIScrollViewをズームする

私はデリゲートの設定について話しているチュートリアルをいくつか見てきましたが、そのほとんどはObj-Cであり、これをC#に変換することはできません。

基本的に、私はSubviewとしてUIImageViewを持っているInterface BuilderのUIScrollViewを持っています。

UIScrollViewのContentSizeを画像のフルサイズに設定し、最小/最大ズームスケールも設定しました。ここに私のコード:

UIImage imgMap = new UIImage("img/map.png"); 
ivMap.Image = imgMap; 
svMap.MinimumZoomScale = 1.0f; 
svMap.MaximumZoomScale = 3.0f; 
svMap.ContentSize = new System.Drawing.SizeF(ivMap.Frame.Width, ivMap.Frame.Height); 

私は行方不明に関するアイデア?私は@Geoffが提供するコードで新しい.xibファイルが、それでも運を作成しました

EDIT

、画像だけでスクロールするが、まだズームしません。

public override void ViewDidLoad() 
{ 
    base.ViewDidLoad(); 

    UIScrollView sv = new UIScrollView (thisView.Frame); 
    UIImageView iv = new UIImageView(UIImage.FromFile ("img/map.png")); 

    sv.AddSubview (iv); 
    sv.ContentSize = iv.Frame.Size; 
    sv.MinimumZoomScale = 1.0f; 
    sv.MaximumZoomScale = 3.0f; 

    vwMineral.AddSubview(sv); 
} 

答えて

7

試してみてください。あなたの答え@Geoffため

var sv = new UIScrollView (window.Frame); 
var iv = new UIImageView (UIImage.FromFile ("pat.jpg")); 

sv.AddSubview (iv); 
sv.ContentSize = iv.Frame.Size; 
sv.MinimumZoomScale = 1.0f; 
sv.MaximumZoomScale = 3.0f; 
sv.MultipleTouchEnabled = true; 
sv.ViewForZoomingInScrollView = delegate(UIScrollView scrollView) { 
    return iv; 
};  

window.AddSubview (sv); 
window.MakeKeyAndVisible(); 
+0

おかげで、私はちょうどあなたが上方に設けられてきたし、もう一度、私はちょうど画像をスクロールすることができ、単にコードで新しい.xibファイルを作成しましたズームイン/ズームアウトはできません。私はIBでも "Multiple Touch"オプションを有効にしようとしましたが、同じことをスクロールすることしかできません。 P.S.画像サイズはかなり大きく、1490x1320が正確です。あなたがより多くの情報を必要とするかどうかを教えてください。 – Marko

+0

おっと、申し訳ありませんが、私は完全な解決策で私の答えを更新しました。 –

+0

それは、私はちょうど 'ViewForZoomingInScrollView'の部分を見逃していました。ありがとう – Marko

関連する問題