У меня проблема с масштабированием scrollView неправильного изображения. - PullRequest
2 голосов
/ 07 марта 2011

Хорошо, это довольно странная проблема, но у меня есть два scrollView, у каждого из которых есть вложенный imageView, позволяющий выполнять панорамирование и масштабирование изображения.Комбинации буксируемого scrollView / imageView отображаются просто великолепно, и, поскольку изображение больше моего размера scrollView, я могу панорамировать просто великолепно.Вот мой viewDidLoad:

-(void) viewDidLoad
{
// set the image to be displayed, pic your own image here

imageView = [[MyImage alloc] initWithImage: [UIImage imageNamed: @"newBackground.png"]];

// yes we want to allow user interaction

[imageView setUserInteractionEnabled:YES];

// set the instance of our myScrollView to use the main screen

scrollView = [[MyScroll alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];

// turn on scrolling

[scrollView setScrollEnabled: YES];

// set the content size to the size of the image

[scrollView setContentSize: imageView.image.size];

// add the instance of our myImageView class to the content view

[scrollView addSubview: imageView];

// flush the item

[imageView release];

// set max zoom to what suits you

[scrollView setMaximumZoomScale:1.0f];

// set min zoom to what suits you

[scrollView setMinimumZoomScale:0.25f];

// set the delegate

[scrollView setDelegate: self];

// scroll a portion of image into view (my image is very big) :)

//[scrollView scrollRectToVisible:CGRectMake(100, 100, 320, 440) animated:NO];

// yes to autoresize

scrollView.autoresizesSubviews = YES;

// set the mask

scrollView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);

// set the view

//self.view =scrollView;

[scrollView setFrame:CGRectMake(0, 0, 320, 230)];

[self.view addSubview:scrollView];


imageView1 = [[MyImage alloc] initWithImage: [UIImage imageNamed: @"newBackground.png"]];

// yes we want to allow user interaction

[imageView1 setUserInteractionEnabled:YES];

// set the instance of our myScrollView to use the main screen

scrollView1 = [[MyScroll alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];

// turn on scrolling

[scrollView1 setScrollEnabled: YES];

// set the content size to the size of the image

[scrollView1 setContentSize: imageView1.image.size];

// add the instance of our myImageView class to the content view

[scrollView1 addSubview: imageView1];

// flush the item

[imageView1 release];

// set max zoom to what suits you

[scrollView1 setMaximumZoomScale:1.0f];

// set min zoom to what suits you

[scrollView1 setMinimumZoomScale:0.25f];

// set the delegate

[scrollView1 setDelegate: self];

// scroll a portion of image into view (my image is very big) :)

//[scrollView scrollRectToVisible:CGRectMake(100, 100, 320, 440) animated:NO];

// yes to autoresize

scrollView1.autoresizesSubviews = YES;

// set the mask

scrollView1.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);

// set the view

//self.view =scrollView;

[scrollView1 setFrame:CGRectMake(0,240,320,230)];


[self.view addSubview:scrollView1];
//[[self view] addSubview:scrollView];

}

Нет, что касается масштабирования, когда я зажимаю, чтобы увеличить ПЕРВАЯ пара scrollView / imageView, это работает прекрасно, никаких проблем вообще.Это увеличение и панорамирование не проблема.НО, когда я ущипну, чтобы увеличить мой второй scrollView, он панорамирует изображение ВТОРОГО, и масштабирует изображение ПЕРВОГО.Так что мой второй scrollView увеличивает изображение первого.А?Я понятия не имею, почему это могло бы происходить.

Все, что я хочу, это иметь отдельные просмотренные изображения, которые можно независимо панорамировать и масштабировать.

Есть мысли о том, что может происходить?

Спасибо!

1 Ответ

1 голос
/ 07 марта 2011

Ваш метод viewForZoomingInScrollView:, вероятно, возвращает одно и то же изображение для обоих видов прокрутки.Он должен посмотреть, какой вид прокрутки передается, и вернуть соответствующий вид изображения.

...