Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c UIWebView的缩放未超过x2_Objective C_Uiwebview_Zooming - Fatal编程技术网

Objective c UIWebView的缩放未超过x2

Objective c UIWebView的缩放未超过x2,objective-c,uiwebview,zooming,Objective C,Uiwebview,Zooming,在UIWebView中放大有很多问题,但我找不到答案 我有带WebView的ViewController。我将一个SVG文件加载到这个WebView中,并希望通过点击它来放大。代码如下: @interface ViewController : UIViewController <UIGestureRecognizerDelegate> { IBOutlet MyWebView *webView; UITapGestureRecognizer *doubleTapRec

在UIWebView中放大有很多问题,但我找不到答案

我有带WebView的ViewController。我将一个SVG文件加载到这个WebView中,并希望通过点击它来放大。代码如下:

@interface ViewController : UIViewController <UIGestureRecognizerDelegate>
{
    IBOutlet MyWebView *webView;
    UITapGestureRecognizer *doubleTapRecognizer;
    CGFloat k;
}

现在WebView正在按点击放大,但只放大了x2,不再放大了。出了什么问题,我如何将其放大到x10?

您试过捏吗

并不是因为您将最大缩放设置为512或10,点击两次将缩放到该级别,这意味着点击web视图中的一个小元素,这将放大以填充web视图的可用空间,无论缩放值如何,直到最大缩放值


因此,一些占据屏幕一半的东西会使变焦为x2,越小越好。

你试过捏吗

并不是因为您将最大缩放设置为512或10,点击两次将缩放到该级别,这意味着点击web视图中的一个小元素,这将放大以填充web视图的可用空间,无论缩放值如何,直到最大缩放值


因此,一些占据屏幕一半的东西将使缩放为x2,越小越好。

那么我该怎么办?我想,我可以把矢量图像放大任意多次。每次点击WebView时,我都需要将这个svg图像放大2倍,那么我应该怎么做呢?我想,我可以把矢量图像放大任意多次。每次点击WebView时,我都需要将svg图像放大2倍。我发现您调用doubleTapRecognizer非常令人不安。numberOfTouchesRequired=1;然后立即重新初始化DoubleTapRecognitzer=[[UITapGestureRecognitzer alloc]initWithTarget:…保留第一个设置可能会有一些副作用,但闻起来像是一个bug!是的,当然是一个bug:)如果您注意到,请分配手势识别器(或任何其他对象)in-viewDidLoad是一种非常糟糕的做法,它可能会导致内存泄漏。半年前我还是相当愚蠢的。我认为现在我们在弧光下晒太阳,我们可以继续以各种“愚蠢”的方式分配东西这就像在c#:-)中工作一样,我发现您调用doubleTapRecognizer.numberOfTouchesRequired=1,然后立即重新初始化doubleTapRecognizer=[[UITapGestureRecognizer alloc]非常令人不安initWithTarget:…保留第一个设置可能会有一些副作用,但闻起来像个bug!是的,这当然是个bug:)如果您注意到,请分配手势识别器(或任何其他对象)in-viewDidLoad是一种非常糟糕的做法,它可能会导致内存泄漏。半年前我相当愚蠢。我认为现在我们在弧光下晒太阳,我们可以继续在各种“愚蠢”的地方分配东西。这就像在c工作一样:-)
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

[webView loadRequest:[NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"map" withExtension:@"svg"]]];
webView.scalesPageToFit = YES;

webView.scrollView.maximumZoomScale = 512;
webView.scrollView.minimumZoomScale = 0.1;

doubleTapRecognizer.numberOfTapsRequired = 2;
doubleTapRecognizer.numberOfTouchesRequired = 1;

doubleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTap:)];
doubleTapRecognizer.delegate = self;
doubleTapRecognizer.enabled = YES;
[webView addGestureRecognizer:doubleTapRecognizer];

k = 1;
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    return YES;
}

- (void)doubleTap:(UITapGestureRecognizer*)sender
{
    if (sender.state == UIGestureRecognizerStateEnded)
    {
        k = 10;
// No one does not work correctly
        [webView.scrollView setZoomScale:k animated:YES];
//      [webView setContentScaleFactor:k];
//      [webView.scrollView setContentScaleFactor:k];
//      webView.scrollView.zoomScale = k;
//      [webView.scrollView zoomToRect:CGRectMake(webView.bounds.origin.x, webView.bounds.origin.y, webView.bounds.size.width/k,  webView.bounds.size.height/k) animated:YES];
    }
}