0

我正在开发一个应用程序,我的任务是从我创建滚动视图并将图像放在滚动条上的数据库中获取 url 链接。
我已经编写了一些代码,当我单击图像时,我必须在我放置在滚动视图上方的 web 视图中显示 url 页面。
为此,我编写了用于在单击图像时获取 url 的触摸代码,但我遇到了问题,例如我的单击不适用于图像和滚动视图,但它正在处理图像的下部和滚动视图,这是一个普通视图。你可以在下面找到我的触摸码

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

        }}}

这里array是我存储所有图像 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

只需设置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 回答
0

你是如何把你的图片放到你的 scollview 上的?图像视图?

我会将它们与 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 回答