在我的应用程序中,我有5个按钮。当firstButton.selected = YES;
我需要其他人*.selected = NO;
时。为其他四个按钮写“NO”是否是正确的解决方案?
如果我不清楚我的意思,这是一个示例代码:
- (IBAction)setColorRed:(id)sender {
_redColor.selected = YES;
_greenColor.selected = NO;
_blueColor.selected = NO;
_yeallowColor.selected = NO;
_clearColor.selected = NO;
}
2)问题的第二部分:
self.redColor setBounds:CGRectMake(0,0,45,45)];
有人可以用人类语言解释为什么我改变那些“0,0”按钮不改变它的位置?就像发送setFrame时一样。
3)问题的第三部分:
发件人是按钮。如果它是UITableViewCell的属性,[sender isSelected]如何工作?什么是“notSelected”的等价物?
提前多多感谢..
答案 0 :(得分:1)
e.g。
- (IBAction)buttonTapped:(UButton *)sender {
for (UIButton *aButton in self.buttons) {
if (aButton != sender) {
aButton.selected=NO;
}
}
sender.selected=YES;
}
Bounds
是其自己坐标空间中的项目坐标,frame
是其父坐标空间中的项目坐标。尝试在自己的空间中偏移项目的来源是没有意义的。isSelected
只是检查`isSelected'的错误/无值。 - e.g。
if (self.redColor.isSelected) {
//The button isn't selected
}
最后,你应养成使用self.property
而不是_property
的习惯,除非你特别想绕过setter / getter。
答案 1 :(得分:1)
没关系,五个按钮不是太靠近你自己。我不确定你要做什么。
由于您正在设置已有位置的对象的边界,因此位置不会更改。当您设置将设置位置的帧时,边界将基于您创建的帧。这是good explanation
发件人是用来调用该方法的任何东西,是一个按钮或一个单元格或者你选择的任何东西。没有这样的东西是“未选择”它只是.selected = NO而“selected”是.selected = YES。
如果您需要更多说明,请告诉我。