एक बेहतर posible के समाधान है:
पहले:
// Simple example
int yPosition = 10;
UILabel *label = [[UILabel alloc] initWithFrame: CGRectMake(0, yPosition, self.view.frame.size.width, 0)];
[label setText: @"Testing..."];
[label setBackgroundColor: [UIColor clearColor]];
[label setNumberOfLines: 0];
[label sizeToFit];
दूसरा:: एक लेबल तो आप यह कर रहे हैं, तो प्रोग्राम के रूप में आप फ्रेम के साथ प्रारंभ करने के लिए और कुछ अनुकूलन की आवश्यकता होगी जो आप केंद्र में करने की कोशिश कर रहे हैं, आप इसे setNumberOflines
चयनकर्ता के नाम से चुन सकते हैं और 0 value
असाइन किया गया है, आपके टेक्स्ट में सभी लाइनों की आवश्यकता होगी, और sizeToFit
विधि एक अच्छा अनुकूलन करने के लिए बुलाया गया है, और अंत में:
[self.label setCenter: CGPointMake(self.view.center.x, self.label.center.y)];
यह only the X axis
केंद्रित हो जाएगा, और के रूप में आप फ्रेम प्रारंभ में वांछित Y axis
रहना होगा।
पुनश्च: यह नहीं एक UILabel
लेकिन अगर नियंत्रण आप एक और सरल अनुकूलन या न की आवश्यकता होगी उपयोग कर रहे हैं पर निर्भर करता है, और यदि आप केवल केंद्र के लिए चाहते हैं प्रोग्राम के रूप में लेकिन interface builder
तैयार किया गया है, बस second code
चलाने की आवश्यकता भी मान्य है।
जो काम करता है लेकिन यदि लेबल लंबा है तो यह केंद्र में नहीं है। यह या तो बाएं या दाएं चला जाता है। मैंने सोचा था कि तैनात यूलाबेल के केंद्र बिंदु से निर्धारित किया गया था। –
अच्छा ... केवल तभी लेबल और दृश्य एक ही दृश्य के सबव्यूव हैं। यदि लेबल दृश्य का सबव्यूव है, तो आपको स्थान की अवहेलना करना चाहिए और केवल सीमाओं पर विचार करना चाहिए। – Eiko
मैंने इंटरफेस डिजाइनर (ड्रैग और ड्रॉप) का उपयोग करके UILabel को जोड़ा। क्या इसका मतलब यह है कि यह दृश्य का एक सबूत है और मुझे सीमाओं का उपयोग करना चाहिए। –