Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone scrollView上的触摸功能_Iphone_Objective C_Ios_Ios5_Uiscrollview - Fatal编程技术网

Iphone scrollView上的触摸功能

Iphone scrollView上的触摸功能,iphone,objective-c,ios,ios5,uiscrollview,Iphone,Objective C,Ios,Ios5,Uiscrollview,我正在开发一个应用程序,我的任务是从数据库中获取url链接,我创建了一个滚动视图,并将图像放在滚动条上我编写了一些代码,当我单击图像时,我必须在我放置在滚动视图上方的webview中显示url页面为此,我编写了当我单击图像时获取url的触摸代码,但我遇到了问题,比如我的单击对图像和scrollview也不起作用,但对图像和scrollview的下部起作用,这是一个普通视图。你可以在下面找到我的触摸代码 - (void)touchesBegan:(NSSet *)touches withEvent

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

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

        }}}
-(void)touchesbeated:(NSSet*)toucheevent:(UIEvent*)event
{   
UITouch*touch=[[event AllTouchs]anyObject];

对于(int index=0;index您是如何将图像放置到scollview?ImageView的

我会将它们与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];

编辑:添加代码

只需设置
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];

}
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;
对于(int i=0;i使用以下代码

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

}
for(int-Tag=0;Tag<[array count];Tag++){
UIButton*btn_URL=[UIButton ButtonWithType:UIButtonTypeCustom];
UIImage*btn_URL=[btn_URL setImage:buttonImage for状态:UIControlStateNormal];
btn_URL.frame=CGRectMake(x,y,buttonImage.size.width,buttonImage.size.height);
[btn_URL addTarget:self action:@selector(buttonAction:)for ControlEvents:UIControlEventTouchUpInside];
btn_URL.tag=标签;
[滚动视图添加子视图:btn_URL];
}
-(无效)按钮操作:(id)发送者{
NSURL*URL=[NSURL URLWithString:[NSString stringWithFormat:@“%@,[array objectAtIndex:[sender Tag]]];
}
在这里,您可以将用户重定向到URL

如果你需要帮助,请告诉我

谢谢


Hemang。

您是如何在scrollview上添加图像的?我忘了提到我正在从数据库获取图像我试图将图像提供给按钮背景,但没有效果请查找问题中的更改我刚刚发现它@mertcan我可以在触摸代码或我声明的图像之间粘贴此代码吗不…不要使用触摸方法d、 粘贴for loop您想将scrollview中具有图像的按钮添加到何处,然后添加到检测操作的方法下方。[btn4preview setImage:[UIImage ImageName:@“YourImageName.png”]forState:UIControlStateNormal];我可以将存储来自db的所有图像的数组放在这里,因为我有多个图像