आप कोको में जानते हैं कि यह बात है, उदाहरण के लिए आप एक 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)
तब तक होना चाहिए , जब तक कि आप केवल सटीक मिलान के लिए जाँच न करें। जिस स्थिति में आपको पहले स्थान पर बिटमास्क की आवश्यकता नहीं होगी, लेकिन सिर्फ एक पुराना पुराना एनम। मेरे उत्तर का दूसरा भाग देखें।