2011-02-16 47 views
3

我想在MonoTouch中使用UIScrollView實現縮放功能,但我似乎無法使其工作。縮放在MonoTouch UIScrollView

我已經看過幾個關於設置委託的教程,但大部分都是在Obj-C中,我無法將其轉換爲C#。

基本上,我有一個UIScrollView在Interface Builder中有一個UIImageView作爲子視圖。

我已經將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文件,但仍然沒有放大。

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

嘗試:

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

謝謝您的回答@Geoff,我剛剛創建了一個新的.xib文件,只是你的上方,並再次我可以滾動的圖像的代碼但不能放大/縮小。我也嘗試在IB中啓用「多點觸控」選項,但同樣的事情 - 我只能滾動。附:圖像尺寸相當大,準確地說是1490x1320。讓我知道你是否需要更多信息。 – Marko

+0

哎呀,對不起,我已經用完整的解決方案更新了我的答案。 –

+0

就是這樣,我錯過了'ViewForZoomingInScrollView'部分。謝謝 – Marko