是的,您可以将控制事件标志或在一起。
我想你可能对按位或的工作原理有点困惑。ORing 不会增加位数,它只是增加设置位数。
当您看到这样定义的标志时:
UIControlEventTouchDragOutside = 1 << 3,
UIControlEventTouchDragExit = 1 << 5,
UIControlEventEditingDidEnd = 1 << 18,
这通常是一个线索,表明它们可以被 ORed 在一起。
在二进制中,这些标志和 OR 的结果将是:
UIControlEventTouchDragOutside 000000000000000000000000000001000
UIControlEventTouchDragExit 00000000000000000000000000100000
UIControlEventEditingDidEnd 00000000000001000000000000000000
OR 00000000000001000000000000101000 的结果
如您所见,结果中的位数仍然相同(32),只是设置的位数发生了变化。
谷歌“二进制算术”和“按位布尔运算符”了解更多信息。
最后一点,Apple文档addTarget:action:forControlEvents说:
controlEvents
一个位掩码,指定为其发送操作消息的控制事件。有关位掩码常量,请参见“控制事件”。
术语位掩码意味着您可以或一起使用此调用的控制事件常量。