recherche

Maison  >  Questions et réponses  >  le corps du texte

Bouton UI non cliquable

Fichier téléchargé sur Github (très petit)

Une classe UIView LeftMenuView est ajoutée au viewcontroller
Une vue de dessus et une vue de dessous sont ajoutées à LeftMenuView
Un bouton est ajouté à chacun.
userInteractionEnabled est OUI,
le cadre du bouton est affiché dans View Debugging et ne dépasse pas la vue parent.
Partie du code :
ViewController :

- (void)viewDidLoad {
    [super viewDidLoad];
    LeftMenuView *leftView=[LeftMenuView createLeftMenuView];
    leftView.userInteractionEnabled=YES;
    self.leftView=leftView;
    [self.view addSubview:leftView];
    //nightButton
    UIButton *nightButton=[self.leftView viewWithTag:6];
    [nightButton addTarget:self action:@selector(touchButton:) forControlEvents:UIControlEventTouchUpInside];
    leftView.userInteractionEnabled=YES;
//    [self.leftView addSubview:nightButton];
    //set
    UIButton *settingButton=[self.leftView viewWithTag:4];
    [settingButton addTarget:self.leftView action:@selector(push) forControlEvents:UIControlEventTouchUpInside];
    }
    

LeftMenuView : il s'agit d'une UIview. Il semble que nous ne devrions pas ajouter d'événements à la vue, n'est-ce pas ? ? ?

-(instancetype)initWithFrame:(CGRect)frame
{
    self=[super initWithFrame:frame];
    self.backgroundColor=[UIColor colorWithRed:26/256.f green:31/256.f blue:36/256.f alpha:0.7];
    [self addHeaderView];
    [self addButton];
    return self;
}
#pragma mark -add view to menu view
-(void)addHeaderView
{
    UIView *headViewUp=[[UIView alloc]init];
    headViewUp.userInteractionEnabled=YES;
    headViewUp.frame=CGRectMake(0, 0, yScreenWidth/2, 114);
    headViewUp.backgroundColor=ColorWithRGB(26, 31, 36);
    headViewUp.backgroundColor=[UIColor redColor];
    self.headViewUp=headViewUp;
    [self addSubview:headViewUp];
    UIView *headViewDown=[[UIView alloc]init];
    headViewDown.userInteractionEnabled=YES;
    headViewDown.frame=CGRectMake(0, yScreenHeight-50, yScreenWidth/2, 50);
    headViewDown.backgroundColor=ColorWithRGB(26, 31, 36);
    self.headViewDown=headViewDown;
    [self addSubview:headViewDown];
}
-(void)addButton
{
    UIButton *settingButton=[self setFrame:CGRectMake(yScreenWidth*2/6, 64, yScreenWidth/6, 50 ) title:@"设置" image:@"Menu_Icon_Setting"];
    settingButton.userInteractionEnabled=YES;
    settingButton.tag=4;
    [self resizeTextAndImageInButton:settingButton];
    [self.headViewUp addSubview:settingButton];
    UIButton *nightButton=[self setFrame:CGRectMake(yScreenWidth/4, 0, yScreenWidth/4, 50 ) title:@"白天" image:@"Menu_Day"];
    nightButton.tag=6;
    [self.headViewDown addSubview:nightButton];
}
-(UIButton *)setFrame:(CGRect)frame title:(NSString *)title image:(NSString *)imageName
{
    UIButton *button=[[UIButton alloc]initWithFrame:frame];
    [button setTitle:title forState:UIControlStateNormal];
    [button setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
    button.titleLabel.font=[UIFont systemFontOfSize:8];
    button.contentHorizontalAlignment=UIControlContentHorizontalAlignmentCenter;
    return button;
}
-(void)resizeTextAndImageInButton:(UIButton *)button
{
    [button setTitleEdgeInsets:UIEdgeInsetsMake(button.imageView.frame.size.height ,-button.imageView.frame.size.width, 0.0,0.0)];
    [button setImageEdgeInsets:UIEdgeInsetsMake(-10, 0.0,0.0, -button.titleLabel.bounds.size.width)];
}
高洛峰高洛峰2822 Il y a quelques jours572

répondre à tous(0)je répondrai

Pas de réponse
  • Annulerrépondre