实施例if self.bitmask | =标志添加一个选项,如何删除一个选项?
self.accessibilityTraits |= UIAccessibilityTraitAdjustable;
添加UIAccessibilityTraitAdjustable选项。但是如何从这个面具中删除一个选项,而不必设置所有内容?
实施例if self.bitmask | =标志添加一个选项,如何删除一个选项?
self.accessibilityTraits |= UIAccessibilityTraitAdjustable;
添加UIAccessibilityTraitAdjustable选项。但是如何从这个面具中删除一个选项,而不必设置所有内容?
并与标志的补它:
self.accessibilityTraits &= ~UIAccessibilityTraitAdjustable;
如果self.accessibilityTraits
是:
000110
和UIAccessibilityTraitAdjustable
是:
000100
(这些值是例子;我没有厕所KED-了真实值)
然后self.accessibilityTraits &= ~UIAccessibilityTraitAdjustable;
是:
000110
& 111011
= 000010
self.accessibilityTraits &= ~UIAccessibilityTraitAdjustable;
~UIAccessibilityTraitAdjustable
反转所有位,留下代表您选项0
的一个(或多个)。其余的二进制文件和。
尝试self.accessibilityTraits &= ~UIAccessibilityTraitAdjustable;
~
反转为此要保留的位位被1现在和要清除的位为0与左手侧可变将保留其具有1S在相应的位与运算它~UIAccessibilityTraitAdjustable
的位置,并且将清除在~UIAccessibilityTraitAdjustable
的相应位置中具有0的位。
self.accessibilityTraits &= ~UIAccessibilityTraitAdjustable;
的~
反转位掩码(NOT)以包含所有位除了的一个给定的,并且&=
AND
s的变量以除去比特的结果。
好吧,这将只删除UIAccessibilityTraitAdjustable而不添加所有其他标志?我只想移除UIAccessibilityTraitAdjustable,但不想添加“除此之外的其他所有”。 – openfrog
@openfrog是的,这只会清除/移除您提供的单个标志,而不会影响所有其他标志。 –
“恭维”:很好的答案。 “补码”:按位倒数。 – usr2564301
@Jongware“欢呼声”:谢谢。 – trojanfoe