Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 触摸UIView时更改布尔值_Ios_Objective C_Uiview_Boolean - Fatal编程技术网

Ios 触摸UIView时更改布尔值

Ios 触摸UIView时更改布尔值,ios,objective-c,uiview,boolean,Ios,Objective C,Uiview,Boolean,我试图在触摸ui视图时设置对其的更改。它是UIView的子类,并具有一个名为“isSelected”的属性BOOL 创建视图时,我们将其设置为“是”: self.isSelected = YES; 触摸视图时,将运行以下命令: - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { if (self.isSelected) { self.isSelected = NO; } else

我试图在触摸
ui视图时设置对其的更改。它是
UIView
的子类,并具有一个名为“isSelected”的属性
BOOL

创建视图时,我们将其设置为“是”:

self.isSelected = YES;
触摸视图时,将运行以下命令:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    if (self.isSelected) {
        self.isSelected = NO;
    } else if (!self.isSelected) {
        self.isSelected = YES;
    }
问题似乎是,人们似乎总是把ISSELECT视为“否”而不是“是”。最好的方法是什么

编辑:注销

-(void)setIsSelected:(BOOL)isSelected {
    NSLog(@"isselected chaned to: %@",isSelected ? @"Yes" : @"No");
}

您重写的
setIsSelected:
方法从不更新该值。你想要:

-(void)setIsSelected:(BOOL)isSelected {
    _isSelected = isSelected;
    NSLog(@"isselected chaned to: %@",isSelected ? @"Yes" : @"No");
}

仅供参考-您可以将这4行替换为1:
self.iSSelected=!自选的。这将切换值。谢谢@rmaddy-我添加了一个编辑,显示我注销对isSelected的更改。我已经把那些台词改成了你的建议。我注意到更改总是显示为是。有什么不对吗?我需要这是正确记录,以便我可以调用一个不同的更新方法时,它被更改为是/否从这个视图直接或当VC他们居住在更新的isSelected这些。谢谢如果您要覆盖
setIsSelected:
方法,那么设置方法中的值会有帮助。您是对的@rmaddy-此默认方法中应该包含什么?当此属性更改时,这是更改背景/钻孔器的正确方法还是有更好的方法?