[英]UIImageView linking to URL when tapped
我有某種圖像滑塊來顯示一些促銷圖像(“促銷”)。 我使用了在附近某處找到的代碼段。 它通過使用帶有框架的UIImageViews填充scrollView的方式工作,並使用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的野生動物園窗口? 我嘗試添加一個與子視圖具有相同框架的按鈕,但我只有一個按鈕(或者它們都位於同一位置)
使我最復雜的想法是將每個按鈕與其對應的URL鏈接起來。
謝謝!
考慮使您的照片成為繼承自UIImageView的類。
這樣,您可以像在迭代器中一樣進行設置,還可以上交NSUrl(使其成為照片的責任而不是客戶端代碼)。 然后,不僅可以通過自動添加UITapGestureRecognizer來擴展此新(F)oto類的邏輯,並通過打開野生動物園窗口使其對用戶做出響應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.