Действие UIBUtton в UICollectionReusableView - PullRequest
0 голосов
/ 27 августа 2018

Я добавляю UIButton внутри UICollectionReusableView. Я могу добавить кнопку, и это действие, но действие кнопки не работает. Я попытался добавить TapGesture и включить взаимодействие с пользователем UICollectionReusableView & кнопки, но безрезультатно. Ниже мой код

- (instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        self.userInteractionEnabled = YES;
        self.backgroundColor = [UIColor menigaLightBackgroundColor];
        UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.frame];
        imageView.userInteractionEnabled = YES;
        imageView.image = [UIImage imageNamed:@"Login_115"];
        imageView.contentMode = UIViewContentModeScaleAspectFill;
        imageView.tag = 10;
        [self addSubview:imageView];

        UIImage *titleImage  = [UIImage imageNamed:@"titleLogo"];
        UIImageView *imageViewTitle = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, titleImage.size.width, titleImage.size.height)];
        imageViewTitle.userInteractionEnabled = YES;
        imageViewTitle.center = self.center;
        imageViewTitle.contentMode = UIViewContentModeScaleAspectFit;
        imageViewTitle.image = titleImage;
        [self addSubview:imageViewTitle];

        float margin = 15.0;
        //Title Label  //10 is the tag for Arch image view
        titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(margin, CGRectGetMaxY([self viewWithTag:10].frame)+ 10 , CGRectGetWidth(self.frame)-margin*2, 60.0)];
        titleLabel.text = @"Your wallets have been linked successfully. Link more accounts now to fully understand your spending.";
        titleLabel.numberOfLines = 4;
        titleLabel.userInteractionEnabled = YES;
        titleLabel.textAlignment = NSTextAlignmentCenter;
        titleLabel.font = [UIFont getDINRegularFontOfSize:16];
        titleLabel.textColor = [UIColor menigaDarkTextColor];
        [self addSubview:titleLabel];

        //Buttons
        linkAccountButton = [[CustomButtonClass alloc] initWithFrame:CGRectMake(margin,  CGRectGetMaxY(titleLabel.frame)+ 10, CGRectGetWidth(self.frame)-margin*2, 44.0)];
        linkAccountButton.userInteractionEnabled = YES;
        linkAccountButton.layer.cornerRadius = 22.0;
        [linkAccountButton setTitle:@"Link An Account" forState:UIControlStateNormal];
        [linkAccountButton.titleLabel setFont:[UIFont getRobotFontOfSize:14]];
        [linkAccountButton setBackgroundColor:[UIColor menigaBrandColorRed]];
        [self addSubview:linkAccountButton];
        UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(linkButtonPressed)];
        tapGesture.numberOfTapsRequired = 1;
        [linkAccountButton addGestureRecognizer:tapGesture];

        [linkAccountButton buttonTouchUpInsideWithCompletion:^{
            MENIGAChooseOrganizationVC *vc = [[MENIGAChooseOrganizationVC alloc] init];
            vc.signupFlow = YES;
            [_parent.navigationController pushViewController:vc animated:YES];
        }];

        //set button hidden
        titleLabel.hidden = YES;
        linkAccountButton.hidden = YES;

    }
    return self;
}

и ниже - жест жеста

//MARK:- Link button Action
-(void)linkButtonPressed
{
   OrganizationVC *vc = [[OrganizationVC alloc] init];
    vc.signupFlow = YES;
    [_parent.navigationController pushViewController:vc animated:YES];
}

Я также прошел по ссылке ниже

Ссылка

Пожалуйста, помогите мне, что я делаю не так.

1 Ответ

0 голосов
/ 27 августа 2018

Использование подкрашивания внутри вместо распознавателя жестов на кнопках UIB

[linkAccountButton addTarget:self action:@selector(linkButtonPressed:) forControlEvents:UIControlEventTouchUpInside];

и тогда действие должно быть:

-(void) linkButtonPressed:(UIButton*)sender
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...