применить событие масштабирования с массивом изображений в UIScrllView - PullRequest
0 голосов
/ 06 июля 2011
- (void)viewDidLoad 
{

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected:)];
tapGesture.numberOfTapsRequired = 1;
tapGesture.numberOfTouchesRequired = 1;


scrollView = [[UIScrollView alloc] initWithFrame:self.view.frame];

int numberOfImages = 32;
CGFloat currentX = 0.0f;

for (int i=1; i <= numberOfImages; i++) {

    // create image
    NSString *imageName = [NSString stringWithFormat:@"page-%d.jpg", i];
    UIImage *image = [UIImage imageNamed:imageName];
    imageView = [[UIImageView alloc] initWithImage:image];

    // put image on correct position
    CGRect rect = imageView.frame;
    rect.origin.x = currentX;
    imageView.frame = rect;

    // update currentX
    currentX +=454; //mageView.frame.size.width;

    [scrollView addSubview:imageView];
    [imageView release];
}
[scrollView addGestureRecognizer:tapGesture];

scrollView.contentSize = CGSizeMake(currentX, 800);
scrollView.pagingEnabled=YES;
scrollView.userInteractionEnabled = YES;
scrollView.maximumZoomScale = 15;
scrollView.minimumZoomScale = 0.5;
scrollView.bounces = NO;
scrollView.bouncesZoom = NO;
scrollView.delegate = self;

scrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
[self.view addSubview:scrollView];
[scrollView release];
[super viewDidLoad];

}
}

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

Ответы [ 2 ]

0 голосов
/ 06 июля 2011

Самый простой способ - сначала создать a big wrapper view и вставить его в ScrollView.
А затем добавьте все ваши imageViews в wrapper view.

0 голосов
/ 06 июля 2011

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

Добавить жест к каждому изображению. В методе добавьте новое представление прокрутки с соответствующим изображением imageView .. затем реализуйте масштабирование.

EDIT:

В методе Tapgesture,

1. Определите, какой imageView видим в это время.

2. Затем создайте новый вид прокрутки с этим единственным видом изображения.

3.Внедрение функции масштабирования в этом новом виде прокрутки.

4. При уменьшении масштаба, если новый размер вида прокрутки равен фактическому значению, удалите новый вид прокрутки для супер-вида, чтобы массив изображений был виден.

...