применить событие масштабирования с массивом изображений изображения в UIScrllView

- (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];

}
}

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


person ram    schedule 06.07.2011    source источник
comment
в приведенном выше коде я не написал код для функции масштабирования. потому что я пытался, но это не работает. поэтому вы говорите, какой код я пишу и где.   -  person ram    schedule 06.07.2011


Ответы (2)


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

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

ИЗМЕНИТЬ:

В методе постукивания,

1. Узнайте, какой imageView виден в это время.

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

3. Реализуйте функциональность масштабирования в этом новом виде прокрутки.

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

person KingofBliss    schedule 06.07.2011
comment
у меня есть жест добавления с прокруткой, который добавляется к просмотру изображения. - person ram; 06.07.2011
comment
теперь в настоящее время симулятор win iphone, когда я нажимаю на любое изображение, затем в консоли отображаются координаты точек. так что теперь, что я пишу код в этом событии, чтобы увеличить изображение? - person ram; 06.07.2011

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

person xhan    schedule 06.07.2011
comment
как создать вид оболочки? я понятия не имею об этом. можешь вкратце рассказать мне? - person ram; 06.07.2011