您知道可可里有这个东西,例如您可以创建一个 UIView
并执行:
view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
我有一个UIView
具有多个状态的自定义,enum
这样的:
enum DownloadViewStatus {
FileNotDownloaded,
FileDownloading,
FileDownloaded
};
对于每个创建的子视图,我设置其tag
:subview1.tag = FileNotDownloaded;
然后,我为视图状态创建了一个自定义设置器,它可以执行以下操作:
for (UIView *subview in self.subviews) {
if (subview.tag == viewStatus)
subview.hidden = NO;
else
subview.hidden = YES;
}
但是我想做的是允许这样做:
subview1.tag = FileNotDownloaded | FileDownloaded;
所以我subview1
以两种状态出现。目前,它在这两个州中均未显示|
操作员似乎将两个枚举值相加。
有没有办法做到这一点?
(subview.tag == viewStatus)
表情对我不好。应该是((subview.tag & viewStatus) != 0x0)
,除非您只想检查完全匹配。在这种情况下,您首先不需要位掩码,而只是一个普通的旧枚举。请参阅我的答案的下半部分。