在MonoTouch中缩放UIScrollView

时间:2011-02-16 00:40:14

标签: c# iphone ios xamarin.ios

我正在尝试使用MonoTouch中的UIScrollView实现缩放功能,但我似乎无法使其正常工作。

我看过一些关于设置委托的教程,但大多数是在Obj-C中,我无法将其转换为C#。

基本上,我在Interface Builder中有一个UIScrollView,它有一个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);
}

1 个答案:

答案 0 :(得分: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 ();