0

私は、スクロールビューを作成してスクロールに画像を配置したデータベースからURLリンクを取得することをタスクとするアプリに取り組んでいます。
画像をクリックすると、スクロールビューの上に配置したWebビューにURLページを表示する必要があるコードをいくつか書きました。
このために、画像をクリックしたときにURLを取得するためのタッチコードを書きましたが、クリックが画像とスクロールビューでも機能しないという問題が発生しましたが、画像とスクロールビューの下部で正常なビューで機能しています。Uは以下の私のタッチコードを見つけることができます

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{   
    UITouch * touch = [[event allTouches] anyObject];   
    for(int index=0;index<[array count];index++)
{

    UIImageView *imgView = [array objectAtIndex:index];  
      if(CGRectContainsPoint([imgView frame], [touch locationInView:scrollView]))
        {  
            NSString *strgetcontenturl = [[NSString alloc]initWithString:[arrayvideoFile objectAtIndex:index]];  
            NSURL *url = [NSURL URLWithString:strgetcontenturl];  
            [webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:strgetcontenturl]]];
            NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];  
             [webview loadRequest:requestObj];

        }}}

ここで、配列はすべての画像 initを保存した場所であり、 arrayvideoFileはすべての URL を保存した場所です。

助けてください。

4

3 に答える 3

0

以下のコードを使用します。

for(int Tag =0; Tag < [array count]; Tag++) {
    UIButton *btn_URL = [UIButton butttonWithType:UIButtonTypeCustom];

    UIImage * btn_URL = [btn_URL setImage:buttonImage forState:UIControlStateNormal];

    btn_URL.frame = CGRectMake(x, y, buttonImage.size.width, buttonImage.size.height);

    [btn_URL addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];

    btn_URL.tag = Tag;

    [scrollview addSubview:btn_URL];
}

-(void)buttonAction:(id)sender {
    NSURL *URL = [NSURL URLWithString:[NSString stringWithFormat:@"%@",[array objectAtIndex:[sender Tag]]]];

}

ここで、ユーザーを URL にリダイレクトできます。

何か助けが必要な場合は、お知らせください。

ありがとう、

ヘマン。

于 2012-12-14T11:43:00.987 に答える
0

画像を scolview にどのように配置しましたか? イメージビュー?

UIButton (CustomType) を使用して配置すると、そのボタンにターゲットを追加でき、タッチを検出する必要がなくなります。UIButton は既にタッチ イベントを検出しているためです。

UIButton *button = [UIButton butttonWithType:UIButtonTypeCustom];
UIImage * buttonImage = ....
[button setImage:buttonImage forState:UIControlStateNormal];
button.frame = CGRectMake(x, y, buttonImage.size.width, buttonImage.size.height);
[button addTarget:self
           action:@selector(buttonAction:)
 forControlEvents:UIControlEventTouchUpInside];
[scrollview addSubview:button];

編集:コードを追加

于 2012-12-14T11:09:54.377 に答える
0

設定imgView.userInteractionEnabled=YES;するだけで役立つ場合があります。

それ以外の場合は、このコードを使用してください

UIScrollView *scrollview4preview=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 44, self.view.frame.size.width, self.view.frame.size.height-44)];
    scrollview4preview.backgroundColor=[UIColor clearColor];
    [self.view addSubview:scrollview4preview];

    int yval=0;
    for (int i=0; i<[arrary count]; i++) {
        UIButton *btn4preview=[[UIButton alloc]init];
        btn4preview.tag=i;
        btn4preview.frame=CGRectMake(scrollview4preview.frame.origin.x+10, i*yval, 150, 150);
        [btn4preview setImage:[UIImage imageNamed:@"YourImageName.png"] forState:UIControlStateNormal];
        [btn4preview addTarget:self action:@selector(btnPreviewSelect:) forControlEvents:UIControlEventTouchUpInside];
        btn4preview.autoresizingMask=UIViewAutoresizingFlexibleLeftMargin;
        [scrollview4preview addSubview:btn4preview];

    }

    scrollview4preview.contentSize=CGSizeMake(scrollview4preview.frame.size.width, yval+160);


-(void)btnPreviewSelect:(id)sender
{
    UIButton *btn=(UIButton *)sender;

NSString *strgetcontenturl = [[NSString alloc]initWithString:[arrary objectAtIndex:btn.tag]];
NSURL *url = [NSURL URLWithString:strgetcontenturl];
[webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:strgetcontenturl]]];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webview loadRequest:requestObj];

}
于 2012-12-14T11:23:19.987 に答える