私はいくつかのプロモーション画像( 'プロモーション')を表示するための画像スライダを持っています。私はここでどこかで見つけたスニペットを使用しました。 UIImageViewsでscrollViewにフレームを設定して動作させ、UIScrollViewDelegateメソッドとPageControlメソッドを使用して左右に移動します。これはページを設定するコードの一部です:URLをタップしたときにURLにリンクするUIImageView
-(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の両方を保持するオブジェクトです。
私の質問はどのようにUIImagesを作るのですか?対応するURLでSafariウィンドウを開いて「内部を触った」とき? サブビューと同じフレームのボタンを追加しようとしましたが、ボタンが1つしかありません(または同じ場所にあるもの)
それぞれのボタンを対応するURLにリンクするのが最も難しいと思います。
ありがとうございます!
私はUIImageViewから継承することを検討していました。 UITapGestureRecognizerの部分は私を悩ますものです。タッチはとても良いことなので、UIButtonと同じようにタップを処理することはできません。 (他の人が同様の話題のコメントでこれを言った)そういうわけで私はむしろボタンを使ってimageViewを持っていると思うのです。 – Daniel
UIGestureRecognizerState UIGestureRecognizerStateEndedを使用して触感を感じ取ることができるはずです。画像の作成を橋渡しし、UIbuttonを作成するUIViewから少し複雑なサブクラスを取得することができます(UIViewは画像とボタンを境界内に保持する親クラスです)。上記と同じですが、ボタンともう少し作業があります。論理をカプセル化し続けることを検討する価値があります。 – Sandoze
最後に、UITapGestureRecognizerを使用して終了しました。私は2つのフレームの使用に問題がありました。私は間違ったものを「動かす」ため、ボタンが機能しませんでした。ご協力ありがとうございました! – Daniel