如果选中,则删除按钮的闪烁
Posted
技术标签:
【中文标题】如果选中,则删除按钮的闪烁【英文标题】:Remove Blinking of button if selected 【发布时间】:2015-07-31 10:45:23 【问题描述】:我有一个按钮,如果我选择它,那么按钮名称应该改变并且其他复选框应该被选中。但是当我点击按钮时,按钮名称正在改变,但不是很明显。
if([btn.identifier isEqualToString:@"CheckBox"] && [self.selectAllButton.titleLabel.text isEqualToString:@"Select All"])
[self.selectAllButton setTitle:@"Unselect All" forState:UIControlStateNormal];
[self.selectAllButton setSelected:YES];
[self.selectAllButton setClipsToBounds:YES];
UIColor *color = [[UIColor alloc] initWithRed:0.0 green:0.0 blue:0.0 alpha:0.0];
[self.selectAllButton setTintColor:color];
[btn setBackgroundImage:[UIImage imageNamed:@"selected1.png"] forState:UIControlStateNormal];
[btn setSelected:YES];
else if ([btn.identifier isEqualToString:@"CheckBox"] && [self.selectAllButton.titleLabel.text isEqualToString:@"Unselect All"])
[self.selectAllButton setTitle:@"Select All" forState:UIControlStateNormal];
[self.selectAllButton setSelected:NO];
[btn setBackgroundImage:[UIImage imageNamed:@"unselected.png"] forState:UIControlStateNormal];
[btn setSelected:NO];
你能告诉我为什么单击全选按钮后按钮没有显示。
【问题讨论】:
UIColor *color = [[UIColor alloc] initWithRed:0.0 green:0.0 blue:0.0 alpha:0.0];这是什么 我想如果你想隐藏你的按钮,那么你应该setAlpha
而不是setTintColor
。
我不想隐藏我的按钮。按钮由 tintcolor 突出显示,这就是我将 tintcolor 的 alpha 设为 0.0 的原因。如果我将 alpha 值更改为 1.0 或其他值,则该按钮将再次突出显示。
【参考方案1】:
您已设置按钮颜色!为什么对所有颜色都使用 0.0?
UIColor *color = [[UIColor alloc] initWithRed:0.0 green:0.0 blue:0.0 alpha:0.0];
alpha:0.0 表示不可见,将其更改为 alpha:1.0
删除[self.selectAllButton setSelected:YES]; & [btn setSelected:YES];
【讨论】:
实际上在使用这个 alpha:0.0 之前,这个按钮是用浅色突出显示的,这就是我这样做的原因。 一旦检查任何对象(按钮、视图、标签等),将 alpha 0.0 更改为 1.0,然后您就明白了 没有到现在还没有解决。实际上,如果我将 alpha 值更改为 1.0,那么在单击我不想要的按钮时,此按钮将突出显示。这就是为什么我把它设为 0.0 删除 setSelected: YES 语句 如果我设置 setSelected=No 那么它会影响其他功能。无论我想通过单击该按钮执行什么功能,它都无法正确执行。以上是关于如果选中,则删除按钮的闪烁的主要内容,如果未能解决你的问题,请参考以下文章
如果所有复选框都未选中,则禁用按钮,如果至少选中一个,则启用它