2016-06-16 3 views
0

Я создаю UIIimageView программно, чем я создаю UIView и в uiview. Я добавил два программных средства uibutton, но метод выбора кнопок не работает. Я много пробовал, но ничего не случилось. Вот мой кодМетод выбора UIButton не работает

-(void) pagingFunc{ 
    CGRect screen = [[UIScreen mainScreen] bounds]; 
    CGFloat width = CGRectGetWidth(screen); 
    CGFloat height = CGRectGetHeight(screen); 



    //ScrollView Size and Contents 
    CGSize mxSize = CGSizeMake([imgesArry count]*width , height-114); 
    [scrlView setContentSize : mxSize]; 

    self.customView.translatesAutoresizingMaskIntoConstraints =YES; 
    self.customView.frame = CGRectMake(0, 0, mxSize.width, mxSize.height); 


    int incX = 0 ; 

    for(int i = 0; i < [imgesArry count]; i++) 
    { 
     PFObject *imageObject = [imgesArry objectAtIndex:i]; 
     PFFile *file; 
     if (height == 480) { 
      file = [imageObject objectForKey:@"image4s"]; 
     } 
     else{ 
      file = [imageObject objectForKey:@"image6s"]; 
     } 

    NSString * imgFile = [file url]; 
    UIImageView* imagView = [[UIImageView alloc]initWithFrame : CGRectMake(incX,0,width ,height)]; 
     imgView.userInteractionEnabled = YES; 
     [imagView sd_setImageWithURL:[NSURL URLWithString:imgFile] placeholderImage:[UIImage imageNamed:@"UserUpdationImageCell.png"]]; 
     btnView = [[UIView alloc] initWithFrame:CGRectMake(incX, imagView.frame.size.height-60, width, 50)]; 
     btnView.backgroundColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.8]; 
     UIButton *bckBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
     [bckBtn addTarget:self 
        action:@selector(aMethod) 
     forControlEvents:UIControlEventTouchUpInside]; 
     [bckBtn setTitle:@"Back" forState:UIControlStateNormal]; 
     bckBtn.frame = CGRectMake(0 ,0, 160.0, 40.0); 


     UIButton *downloadBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
     [downloadBtn addTarget:self 
        action:@selector(aMethod) 
     forControlEvents:UIControlEventTouchUpInside]; 
     [downloadBtn setTitle:@"Download" forState:UIControlStateNormal]; 
     downloadBtn.frame = CGRectMake(160 ,0, 160.0, 40.0); 
     [btnView addSubview:bckBtn]; 
     [btnView addSubview:downloadBtn]; 
     [self.customView addSubview:imagView]; 
     [self.customView addSubview:btnView]; 


     incX+= width; 
    } 
    [scrlView setContentOffset:CGPointMake(width*selectedIndex, 0)]; 


} 
+0

Я также сталкиваются с той же проблемой, и это происходит потому, UIButton получает потерять свою цель по какой-либо причине. Использование UIButton + Block категории, это помогло мне. здесь ссылка https://gist.github.com/joshdholtz/2468899 –

+0

набор 'btnView.userInteractionEnabled = YES;' – Paulw11

+0

теперь попробуйте ссылку @Mahesh –

ответ

0

Может быть, вы можете установить: self.customView.userInteractionEnabled=YES;

написать простой демо вы описываете, и она работает:

// imagView -> view1 -> bckBtn 
    UIImageView *imagView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 200, 200)]; 
    imagView.userInteractionEnabled = YES; 
    imagView.backgroundColor = [UIColor grayColor]; 
    [self.view addSubview:imagView]; 

    UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 100, 100)]; 
    view1.backgroundColor = [UIColor yellowColor]; 
    [imagView addSubview:view1]; 

    UIButton *bckBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
    bckBtn.frame = CGRectMake(10, 10, 50, 50); 
    bckBtn.backgroundColor = [UIColor redColor]; 
    [bckBtn addTarget:self 
       action:@selector(aMethod) 
    forControlEvents:UIControlEventTouchUpInside]; 
    [bckBtn setTitle:@"Back" forState:UIControlStateNormal]; 
    [view1 addSubview:bckBtn]; 

-(void)aMethod{ 
    NSLog(@"button click"); 
} 

Надеется, что это помогает.

0

Ну что ж, убедитесь, что у вас нет накладок над кнопками. Также вы можете попробовать использовать GestureRecognizers.

Вот Swift сниппет, я уверен, что он может быть переведен в Obj-C

let xButton = UIButton(frame: CGRect(x: 0, y: 0, width: 160, height: 40)) 
xButton.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(aMethod))) 
Смежные вопросы