【发布时间】:2014-06-24 19:15:54
【问题描述】:
我正在尝试在触摸UIView 时对其进行更改。它是UIView 的子类,并有一个属性BOOL,称为“isSelected”。
创建视图时,我们将其设置为 YES:
self.isSelected = YES;
当视图被触摸时,以下运行:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if (self.isSelected) {
self.isSelected = NO;
} else if (!self.isSelected) {
self.isSelected = YES;
}
问题似乎是 isSelected 似乎总是被视为 NO 而不是 YES。做这个的最好方式是什么。
编辑:退出
-(void)setIsSelected:(BOOL)isSelected {
NSLog(@"isselected chaned to: %@",isSelected ? @"Yes" : @"No");
}
【问题讨论】:
-
仅供参考 - 您可以将这 4 行替换为 1:
self.iSSelected = !self.isSelected;。这将切换值。 -
谢谢@rmaddy - 我添加了一个 EDIT,它显示我注销了对 isSelected 的更改。我已将这些行更改为您的建议。我注意到更改始终显示为“是”。有什么不对吗?我需要正确记录它,以便当它直接从此视图更改为 YES/NO 或当它们所在的 VC 也为这些更新 isSelected 时,我可以调用不同的更新方法。谢谢
-
如果您要覆盖
setIsSelected:方法,在方法中设置值会有所帮助。 -
你是对的@rmaddy - 这个默认方法应该是什么?这是更改此属性时更改背景/钻孔器的正确方法还是有更好的方法?
标签: ios objective-c uiview boolean