ios - 为何按钮点击无反应?
PHPz
PHPz 2017-04-17 17:59:40
0
6
302
/*这段代码功能是添加按钮,视图上移,但是发现在上移的视图里,添加的按钮不响应,这是为什么呢?*/


    -(void)showView
    {
        UIView *addView = [[UIView alloc] initWithFrame:CGRectMake(0, SCREENSIZE.height,SCREENSIZE.width, 80)];
        [addView setBackgroundColor:[UIColor whiteColor]];
        UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(10, 10, 80, 40)];
        [btn setTitle:@"相册" forState:UIControlStateNormal];
        [btn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
        [btn addTarget:self action:@selector(openPhoto1) forControlEvents:UIControlEventTouchUpInside];
        [addView addSubview:btn];
        [self.view addSubview:addView];
        
        //计算控制器的view需要平移的距离
        CGFloat moveY=0;
        if (_bShowAddView==false)
            moveY  = -80;
        else
            moveY=0;
        _bShowAddView=!_bShowAddView;
        //
        //    // 4,执行动画
        [UIView animateWithDuration:0.5 animations:^{
            self.view.transform = CGAffineTransformMakeTranslation(0, moveY);
        }];
    }
    -(void)openPhoto1
    {
        NSLog(@"test");
    }
PHPz
PHPz

学习是最好的投资!

répondre à tous(6)
Peter_Zhu

Le contrôle d'interface dépasse la position du contrôle parent.
Déterminez la taille du cadre de self.view, regardez la taille du cadre de addview, puis regardez la taille de la position du cadre de btn et assurez-vous que chaque calque est dans le cadre de self.view~

左手右手慢动作

Oui, addview est hors de portée et l'objet utilisé pour l'animation est erroné. Merci.

小葫芦

Je ne comprends pas ce que vous voulez écrire, mais le Y et la hauteur du cadre dans UIView *addView = [[UIView alloc] initWithFrame:CGRectMake(0, SCREENSIZE.height,SCREENSIZE.width, 80)]; mal défini, changez-le et cliquez sur

.
PHPzhong

UIView是需要添加交互效果的,默认是不能接到点击效果, définissez l'attribut qui accepte les effets de clic sur OUI et le tour est joué

Peter_Zhu

Soit cela dépasse la portée du contrôle parent, soit l'interaction du contrôle parent n'est pas autorisée

迷茫

Si vous devez interagir, il existe un moyen

  1. Personnaliser une vue parent irrégulière (je suppose que vous ne savez pas comment poser cette question)

  2. Redéfinir la position par rapport à la vue parent dans l'événement tactile de la vue

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal