UIImageView ссылки на URL при нажатии - PullRequest
0 голосов
/ 08 марта 2012

У меня есть какой-то слайдер изображений, чтобы показать некоторые рекламные изображения («промо»).Я использовал фрагмент, который нашел где-то здесь.Он работает, заполняя scrollView с UIImageViews фреймами, и использует методы UIScrollViewDelegate и методы PageControl для перемещения влево и вправо.Это часть кода, которая устанавливает страницу:

-(void)setupPage{
    [scrollView setDelegate:self];
    [self.scrollView setBackgroundColor:[UIColor blackColor]];
    [scrollView setCanCancelContentTouches:NO];

    scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
    scrollView.clipsToBounds = YES;
    scrollView.scrollEnabled = YES;
    scrollView.pagingEnabled = YES;

    //cargar fotos
    CGFloat cx = 0;
    for (id row in promosArray) {
        NSLog(@"imagen %@", [row url]);
        UIImage *image = [row foto];
        //image = [image imageRotatedByDegrees:90.0f];
        UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
        CGRect rect = imageView.frame;
        rect.size.height = image.size.height;
        rect.size.width = image.size.width;
        rect.origin.x = ((scrollView.frame.size.width - image.size.width) / 2) + cx;
        rect.origin.y = ((scrollView.frame.size.height - image.size.height) / 2);

        imageView.frame = rect;
        [imageView setUserInteractionEnabled:YES];

        [scrollView addSubview:imageView];
        cx += scrollView.frame.size.width;
    }
    self.pageControl.numberOfPages = [promosArray count];
    [scrollView setContentSize:CGSizeMake(cx, [scrollView bounds].size.height)];

    [cargando setHidden:YES];
    [scrollView setHidden:NO];
    [pageControl setHidden:NO];

}

Я беру информацию из promosArray, который является массивом объектов типа promo с этим заголовком

@interface Promo : NSObject
@property (strong, nonatomic) UIImage *foto;
@property (strong, nonatomic) NSURL *url;

-(id) initWithUIImage: (UIImage *) f andNSURL: (NSURL *) u;
@end

Таким образом, промо - это просто объект, который содержит и UIImage, который он должен показывать, и URL, на который он ссылается при нажатии.

Поэтому мой вопрос заключается в том, как сделать так, чтобы UIImage открывался «подправлен внутри»окно сафари с соответствующим URL?Я попытался добавить кнопку с тем же фреймом, что и в подпредставлении, и у меня есть только 1 кнопка (или все они в одном и том же месте)

. Мне кажется, что мне больше всего мешает связать каждую кнопку с соответствующим URL.

Спасибо!

1 Ответ

1 голос
/ 08 марта 2012

Подумайте о том, чтобы сделать свой фото своим собственным классом, наследуемым от UIImageView.

Таким образом, вы можете настроить его так же, как вы делали это в своем итераторе, но также передать NSUrl (сделав это обязанностью фотографии, а не клиентского кода). Мало того, что вы можете расширить логику этого нового (F) класса Oto, автоматически добавив UITapGestureRecognizer и заставив его ответить пользователю, открыв окно сафари.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...