Ios 关于UIButton选择的If语句
我不确定这为什么不起作用:Ios 关于UIButton选择的If语句,ios,objective-c,uibutton,Ios,Objective C,Uibutton,我不确定这为什么不起作用: - (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]
- (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;
}
我试着基于这样的理解来实现您的代码:
\u菜单项2
是ui按钮
,正在使用
-(IBAction)menuRightItem2Touch:(id)sender method.
有两个滑块(iBouts)滑块1
,滑块2
。两者都使用监听ValueChanged
事件
-(IBAction) sliderValueChanged:(UISlider*)sender
代码似乎运行得很好。请确保您已使\u菜单项2
收听-
-(IBAction)menuRightItem2Touch:(id)sender
检查按钮是否选中,如果未选中,请使用如下所示的setselected功能
- (IBAction)menuRightItem2Touch:(id)sender {
if([_menuRightItem2 isSelected])
{
[_menuRightItem2 setSelected:NO];
}
else{
[_menuRightItem2 setSelected:YES];
}
}
[\u menuRightItem2已选中]
返回布尔值
您可以在if
语句中直接使用此方法,这是推荐的方法,而不是将其等同于YES
所以试着使用它
if([_menuRightItem2 isSelected]){
}
希望有帮助。什么是\u menuRightItem2
?尝试将滑块的连续属性更改为否
。那么我认为您不需要检查_menuRightItem2.selected _menuRightItem2是一个UIButton注意您总是(除了在init…
方法中或在getter
和setter
方法本身中)为您的IVAR使用访问器!所以你永远不要使用\u menuRightItem2.selected
而是self.menuRightItem2.selected
好的,只有当选择了menuRightItem2时,代码才会工作,这就是我在这里试图实现的。是的,只有当我选择按钮并移动滑块时,代码才会工作。尝试调试并确保在您选择按钮时控件转到-(iAction)菜单RightItem2Touch:(id)sender。您是否可以上载您制作的项目?看看我是否能发现问题。调试说明了什么?控件是否转到(iAction)菜单项2触摸:(id)发送方方法?能否在回答中添加详细信息?他为什么要这样做?仅仅说“尝试并使用”并不是一个好答案。@Popeye。。现在这是你做的有用的事情。你能在你的答案中添加细节吗?他为什么要这样做?仅仅说“试试看”不是一个好答案。