2011-02-16 118 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