我不确定为什么这不起作用:
- (IBAction)sliderValueChanged:(UISlider *)sender {
if (_menuRightItem2.selected == YES) {
NSLog(@"yes");
if (sender == self.slider1)
[sender setValue:((int)((slider1.value + 1) / 1.0) - 1.0) animated:NO];
else if (sender == self.slider2)
[sender setValue:((int)((slider2.value + 1) / 1.0) - 1.0) animated:NO];
}
barHeight = slider1.value * -20 + slider2.value * -50; //! hoogte in de min, yea right.
[UIView animateWithDuration:0.50 animations:^{
self.orangeView.frame = CGRectMake(595, 615, 80, barHeight);
}];
}
我想要完成的是,当选择menuRightItem2
时,它会执行我的if else
语句,否则不会。但我的NSLog()
甚至没有工作。实现这一目标的正确方法是什么?
我的按钮声明:
- (IBAction)menuRightItem2Touch:(id)sender {
_menuRightItem2.selected = !_menuRightItem2.selected;
}
答案 0 :(得分:1)
[_menuRightItem2 isSelected]
返回一个bool
您可以在if
语句中直接使用此方法,这是推荐的方法,而不是将其等同于YES
所以尝试使用
if([_menuRightItem2 isSelected]){
}
希望它有所帮助。
答案 1 :(得分:0)
好吧,我试图在这个理解的基础上实现你的代码:
_menuRightItem2
为UIButton
,正在使用
UIControlEventTouchUpInside
个事件
-(IBAction)menuRightItem2Touch:(id)sender method.
有两个滑块(IBOutlets)slider 1
,slider2
。两者都使用
ValueChanged
个事件
-(IBAction) sliderValueChanged:(UISlider*)sender
代码似乎完美运行。请确保您已_menuRightItem2
收听 -
-(IBAction)menuRightItem2Touch:(id)sender
答案 2 :(得分:0)
检查按钮是否被选中,如果不使用setselected功能,如下所示
- (IBAction)menuRightItem2Touch:(id)sender {
if([_menuRightItem2 isSelected])
{
[_menuRightItem2 setSelected:NO];
}
else{
[_menuRightItem2 setSelected:YES];
}
}