设置标题颜色不起作用 - UIButton

问题描述 投票:0回答:1

我创建了 UIButtons 数组,具有相同的操作, 如果我单击第一个按钮,第一个按钮的颜色应该改变,其他按钮的颜色不应该改变。如何实现这一目标?

for(titleStr in titleArray){
        
        actionButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
        [actionButton addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside];
        actionButton.tag = count;
        [actionButton setTitle:titleArray[count] forState:UIControlStateNormal];

[actionButton setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
        [actionButton setBackgroundColor:[UIColor clearColor]];//[UIColor greenColor]]; // AJS 3.3 change
        CGSize expectedTitleSize = [actionButton.titleLabel sizeThatFits:maximumLabelSize];
        CGRect buttonframe;
        buttonframe=CGRectMake(contentOffset,0, expectedTitleSize.width+5.0, expectedTitleSize.height+25);
        actionButton.frame = buttonframe;
        [titlewidthArray addObject:[NSNumber numberWithFloat:expectedTitleSize.width]];
        [contentoffsetArray addObject:[NSNumber numberWithFloat:contentOffset+3.0]];
        if(count==0){
            actionButton.titleLabel.font=[UIFont fontWithName:@"HelveticaNeue-Medium" size:15.0];
            [actionButton setSelected:YES];
            tempObj = actionButton;
        }else {
            actionButton.titleLabel.font=[UIFont fontWithName:@"HelveticaNeue-Medium" size:15.0];
            
        }
        [titleScrollView addSubview:actionButton];
        contentOffset += actionButton.frame.size.width+5.0;
        titleScrollView.contentSize = CGSizeMake(contentOffset, titleScrollView.frame.size.height);
        // Increase the count value
        count++;
        
    }

-(void)buttonTapped:(id)sender { 

if([sender tag]==0){ 
UIButton *tappedButton = (UIButton *)sender; 

[actionButton setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal]; 
actionButton.titleLabel.textColor = [UIColor whiteColor]; 

[actionButton setTitleColor:[UIColor whiteColor] forState:UIControlStateDisabled]; 
[tappedButton setTitleColor:[UIColor redColor] forState:UIControlStateNormal];    
} 
}

提前致谢

ios objective-c xcode
1个回答
0
投票

为此,您必须在头文件中添加一个额外的 UIButton 对象。

当用户单击任何按钮时,您必须将所选按钮存储在 refbutton 对象中并按如下所示使用。

@interface YourViewController () 
{
 UIButton *btnSelected;
}

现在转到按钮操作:

-(IBAction)buttonTapped:(UIButton *)sender { 

    if(_btnSelected){
      _btnSelected.titleLabel.textColor = [UIColor blackColor]; 
    }
   _btnSelected = sender;

  sender.titleLabel.textColor = [UIColor whiteColor]; 
} 

希望这对您有帮助。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.