Xcode 9 - "निश्चित चौड़ाई की कमी के कारण क्लिपिंग हो सकती है" और अन्य स्थानीयकरण चेतावनी


147

मैंने नया Xcode डाउनलोड किया और इंटरफ़ेस बिल्डर में मुझे चेतावनी के साथ समस्याओं का एक टन है जो इस तरह की बातें कहते हैं:

निश्चित चौड़ाई की कमी के कारण कतरन हो सकती है

यह इस तरह दिख रहा है:

यहाँ छवि विवरण दर्ज करें

मेरे पास कई भाषाओं के लिए स्थानीयकरण है और मैं चेतावनी को समझता हूं कि किसी अन्य भाषा में एक लेबल का आकार बदल सकता है, लेकिन मेरे ऐप में यह समस्या नहीं है। मैंने कल Xcode 8 में इसे चलाया और परीक्षण किया, यह ठीक था। मैं व्यर्थ नई बाधाओं को जोड़ने के लिए घंटे और घंटे खर्च नहीं करना चाहता।

किसी भी सुझाए गए समाधान?


मेरा सुझाव है कि आप ऑटोरेस्‍पिंग में दिखें
डार्क इनोसेंस

3
मुझे भी। ऐसे बटन हैं जो सभी भाषाओं में 50pt चौड़ाई की गारंटी हैं। क्यों sully मेरे अन्यथा स्वच्छ autolayout रिपोर्ट कार्ड इस के साथ?
जॉन स्कोलो

9
यह निश्चित रूप से एक बड़ी समस्या है, और यह आश्चर्यजनक है कि इसके बारे में अधिक बात नहीं है: O
Fattie

2
मुझे केवल अंग्रेजी स्थानीयकरण होने पर भी यह त्रुटि मिलती है।
शेड्स

6
दूसरों के लिए, यदि आपके पास कोई स्थानीयकरण नहीं है और आप चाहते हैं कि ये चेतावनी गायब हो जाए तो अपने स्टोरीबोर्ड को Base.iproj फ़ोल्डर से बाहर ले जाएं जैसा कि यहां बताया गया है: stackoverflow.com/a/45040394/1807644
विलियम टी।

जवाबों:


179

मुझे अपने ऐप में कई भाषाओं के बिना भी एक ही चेतावनी मिल रही थी , जिससे मुझे पता चल गया कि वास्तव में क्या चल रहा था। । ।

यहां कुछ अलग चीजें चल रही हैं। मैं अपने स्वयं के ऐप में निश्चित चौड़ाई से अधिक या बराबर या उससे कम या बराबर वस्तु की चौड़ाई को बदलकर निश्चित-चौड़ाई की चेतावनियों को चुप करने में सक्षम था ।

यह इंटरफ़ेस बिल्डर में ऑब्जेक्ट का चयन करके, आकार निरीक्षक के पास जाकर इसे वहां बदलकर किया जा सकता है:

यहाँ छवि विवरण दर्ज करें


या, दस्तावेज़ की रूपरेखा से बाधा का चयन करें, आकार निरीक्षक पर जाएं, और इसे वहां बदलें:

यहाँ छवि विवरण दर्ज करें



जहाँ तक आपके स्क्रीनशॉट के शीर्ष पर चेतावनी है:

एक केंद्र बाधा के साथ निश्चित अग्रणी और अनुगामी बाधाएं कतरन का कारण हो सकती हैं

यहाँ मेरे अपने ऐप का एक स्क्रीनशॉट है जिसमें मुझे ठीक वैसी ही चेतावनी मिल रही थी:

यहाँ छवि विवरण दर्ज करें

मेरे पास @ साइन सेट से बटन तक लीडिंग और ट्रेलिंग के लिए लेबल था, लेकिन रेटिंग लेबल के साथ केंद्र को संरेखित करने के लिए । एक बार जब मैंने केंद्र संरेखण बाधा को हटा दिया , तो चेतावनी गायब हो गई, लेकिन मुझे अनुचित तरीके से रखी गई वस्तुओं के सेट के साथ छोड़ दिया गया था।

यह तब है जब मैंने स्टैक व्यू को गले लगाने के लिए खुद को इस्तीफा दे दिया । के रूप में इसका उपयोग करने के लिए कष्टप्रद है, जब आप सभी बाधाओं और सेटिंग्स को सही पाते हैं, तो यह सुंदर रूप से और बहुत चेतावनियों के साथ देता है।


संपादित करें

जैसा कि रिपोज टिप्पणी में लिखते हैं, कभी-कभी जोड़ते हुए> = 0 वही होगा जो आपको चाहिए, जैसा कि आप सुनिश्चित कर रहे हैं कि दो तत्व ओवरलैप नहीं होते हैं।


2
> = 0 ओवरलैपिंग और फिक्स्ड ओवरलैपिंग मुद्दों को रोकता है, जो मैं पहले कर रहा था, लीडिंग / ट्रेलिंग को राइट / लेफ्ट में परिवर्तित करना मेरे लिए क्लिपिंग एरर तय करता है। परिणाम अलग-अलग हो सकते हैं। किसी भी सॉफ्टवेयर विकास की शुरुआत से पहले कृपया अपने चिकित्सक से परामर्श करें।
सोना

@ सही ढंग से। इस बारे में सोचें कि क्या गलत हो सकता है और यह सुनिश्चित करने के लिए एक बाधा जोड़ें कि यह नहीं करता है।
शेड्स

IOS में स्टैक व्यू का उपयोग करने के लिए इस्तीफा शायद ठीक है, लेकिन ओएस एक्स (क्षमा करें MacOS) के लिए यह हमेशा एक अच्छा विकल्प नहीं है। Apple को यह पता होना चाहिए। यूआई और यूएक्स की अवधारणा में अक्सर अलग-अलग धारणाएं होती हैं।
जोनेंस

2
मैं UIStackView को अपनाने से सहमत हूं। यह निश्चित रूप से एक दर्द है और मैंने इसे कुछ बाधाओं के साथ करने की कोशिश की, मैंने एक और UIStackView जोड़ा और यह एकदम सही था।
टेम्पलमैन 15

1
क्या कोई अन्य विकल्प है - क्या होगा यदि मुझे निश्चित चौड़ाई के रूप में मेरा नियंत्रण चाहिए?
काम्पई

60

आप चेतावनी को चुप कराने और यह देखने में मदद करते हैं कि क्या यह मदद करता है, प्रति बाधा के आधार पर "सम्मान भाषा निर्देश" को अक्षम करने का प्रयास कर सकता है। अपने अवरोध का चयन करें और गुण / आकार निरीक्षक खोलें। कृपया छवि संलग्न देखें।

यदि आप अपने ऐप को अन्य भाषाओं में स्थानीय बनाने की योजना नहीं बना रहे हैं, तो इस समाधान में कोई कमियां नहीं होनी चाहिए। स्थानीयकृत ऐप्स के लिए आपको अपने लेबल और फ़ॉन्ट आकारों के प्रति अधिक सचेत रहना होगा।

ps यह सॉल्यूशन iOS के लिए काम करता है। MacOS के लिए चेतावनी देने के लिए = = या <= प्रयास करें।

नीचे दी गई तस्वीर में pps Labels AutoMayout और NSMutableAttributedString का उपयोग करके एक एकल UILabel या UITextView पर संपत्ति के लिए जिम्मेदार ठहराया है। छवि केवल प्रदर्शन उद्देश्यों के लिए है।

भाषा की दिशा का अनादर


1
फिक्स्ड "एक केंद्र बाधा के साथ स्थिर अग्रणी और अनुगामी बाधाएं मेरे लिए" कतरन का कारण बन सकती हैं। धन्यवाद!
14

4
यदि आपने यह कोशिश की है और इसका कोई प्रभाव नहीं दिख रहा है, तो Xcode छोड़ने और इसे पुनः आरंभ करने का प्रयास करें। मेरे लिए वह चाल काम कर गई।
T'Pol

2
यह मुझे इसे रद्द नहीं करने देगा।
स्कूटर

1
उत्तम! यह मेरे लिए काम करता है और मुझे अपनी बाधाओं को बदलने की आवश्यकता नहीं है, धन्यवाद!
rgkobashi

1
> = विभिन्न जटिल प्राथमिकता वाली योजनाओं के कारण बाधाओं का मेरे लिए बुरा प्रभाव पड़ा। मैं अपने लेबल को एक दृश्य में सम्मिलित करने के लिए तैयार था, लेकिन फिर आपका समाधान मिल गया जिसने चाल चली! धन्यवाद :)
केर्कोडेक्स

33

लेबल और बटन के लिए जो इस चेतावनी को स्थानीयकृत करते हैं, समझ में आता है और आपको आवश्यक बाधाएं प्रदान करनी चाहिए ताकि आपके लेबल ओवरलैप न हों। यदि वे अब भविष्य में ओवरलैप नहीं करते हैं, तो वे बाधाएं प्रदान करने के लिए चोट नहीं पहुंचाएंगे।

Xcode आपको इन बाधाओं को स्वचालित रूप से जोड़ने में मदद करता है:

अपने स्टोरीबोर्ड के दस्तावेज़ की रूपरेखा में पीले तीर पर क्लिक करें और या तो "फिक्स्ड लीडिंग" या "फिक्स्ड ट्रेलिंग" चुनें, यह इस बात पर निर्भर करता है कि टेक्स्ट आपकी स्क्रीन पर है (बाएं या दाएं)। यह ज्यादातर मुद्दों के लिए इसे ठीक कर देगा।

Xcode स्क्रीनशॉट

यदि आपके पास बिना किसी पाठ (केवल छवि) के बटन के साथ यह समस्या है , तो "डिफ़ॉल्ट शीर्षक" को हटाने का प्रयास करें जो अभी भी बटन पर सेट किया जा सकता है:

Xcode स्क्रीनशॉट


4
मेरे मामले में, डिफ़ॉल्ट शीर्षक को हटाकर चेतावनी को हटा दिया गया। धन्यवाद!
रेइनहार्ड मेवनर

ध्यान दें कि जब आप एक जोड़ने ले लो UIButtonकरने के लिए Storyboard, default buttonशीर्षक होगा button
मिगेल टेपेल

29

साथ Labels, आप निर्धारित कर सकते Linesहै 0और Autoshrinkगुण है Minimum Font Sizeदूर करने के लिए Fixed Width Constraints May Cause Clippingइस तरह, चेतावनी:

यहाँ छवि विवरण दर्ज करें


3
हाँ, आपको केवल
रीफिंग करना

2
सेटिंग्स की संख्या 0 के कारण लेबल को आवश्यकतानुसार कई लाइनों तक विस्तारित किया जा सकता है, जो कि आप नहीं चाहते हैं।
निकंडन

@nickdnk: मुझे पता है कि, यदि आपने लेबल के लिए ऊंचाई की सीमा तय की है, तो इसका विस्तार नहीं होगा।
Lionking

20

एक और त्वरित समाधान!

UIButton के लिए शीर्षक को सादे से गुणित पाठ में बदलकर मेरे मुद्दे को भी हल किया: -

यहाँ छवि विवरण दर्ज करें


एक जादू की तरह काम किया!
शिल्प

7

मुझे पता है कि इस सवाल का जवाब पहले ही दिया जा चुका है, लेकिन मैंने अपने मामले में इस त्रुटि को ठीक करने के लिए जो किया, वह था "एस्पेक्ट रेश्यो" प्रॉपर्टी को जोड़ना और फिर उस चौड़ाई या ऊंचाई की बाधा को खत्म करना, जो बहुत अच्छी तरह से काम कर रही थी और कम मेहनत की थी, और मैं इसे बनाए रखने में कामयाब रहा। एक ही आउटपुट और विभिन्न उपकरणों के लिए मेरे विचार को अनुकूलित करें।


4

स्विफ्ट 4, एक्सकोड 9.1:

इस मुद्दे के बारे में, मुझे लगता है कि आपकी वस्तु यह नहीं जानती है कि पर्यवेक्षण के संदर्भ में यह सही केंद्र स्थिति क्या है , और इसे हटाने या उपयोग करने से अधिक या अन्य प्रमुख / चरमराती सेटिंग्स से अधिक बार सही ढंग से काम नहीं करते हैं। सबसे पहले, आपको अपने पर्यवेक्षण की सही बाधाओं की जांच करनी चाहिए।

यदि आपके पर्यवेक्षक / एस को सही तरीके से निपटाया जाता है, तो आप अपनी वस्तु को "समझाने" का प्रयास कर सकते हैं कि "कंटेनर में क्षैतिज रूप से" अवरोध स्थापित करके दृश्य में सही स्थिति क्या है :

यहाँ छवि विवरण दर्ज करें


2

यदि आपको बटन के लिए निश्चित चौड़ाई की बाधा की आवश्यकता है तो बस चौड़ाई की प्राथमिकता निर्धारित करें 700


1

मुझे भी यही समस्या थी, लेकिन जब मैं >=इसे बदलने के लिए स्वचालित रूप से निरंतर सेट करता 0हूं, अगर मैं 60उदाहरण के लिए चुनता हूं , तो चेतावनी फिर से दिखाई देती है। तो मैं समस्या के साथ एक पाश में था।

मैं अपने Labelमें एम्बेड करने को ठीक कर सकता हूँView

Editor > Embed In > View

में Labelमैं सेट Top, Bottom, Leadingऔर Trailingसाथconstant = 0

की कमी

में Viewमैंने वह सेट किया constraintsजिसकी मुझे पहले से उम्मीद थी।


1

मुझे एक ही समस्या थी जब Xcode 9 पर जाना और एक दृष्टिकोण मिला जो कुछ प्रकार के लेआउट के लिए उपयोगी है। मेरे मामले में, मुझे एक टेबल हेडर चाहिए था जिसमें दो कॉलम (UILabels) निश्चित चौड़ाई के थे और दूसरा चर चौड़ाई का था। भले ही मैंने कॉलम की चौड़ाई को कैसे निर्दिष्ट किया (जिसमें समतुल्य या समान के बजाय अधिक से अधिक बाधाओं का उपयोग करना शामिल है), मैं संभावित कतरन के बारे में चेतावनी प्राप्त करता रहा। मेरे मामले में, मैं चाहता था कि चर चौड़ाई का स्तंभ (UILabel) यदि आवश्यक हो तो क्लिप हो। मैं सिर्फ चेतावनी को नजरअंदाज कर सकता था, लेकिन ऐसा करना पसंद नहीं है।

यहां काम करने वाला दृष्टिकोण उपयुक्त आकार की बाधाओं के साथ एक यूआईईवीवाई बनाने के लिए था और यूआईवीबेल को यूआईवीईवाई में एक सबव्यू के रूप में एम्बेड करना था। फिर ट्रंकेशन आवश्यक हो जाता है और मुझे कोई चेतावनी नहीं मिलती है। यह काम करता है कि UIView / एम्बेडेड UILabel एक StackView में है या नहीं।

यह अनिवार्य रूप से हेरोल्डो गोंडिम के समान दृष्टिकोण है लेकिन यहां आप देख सकते हैं कि यह स्टैक व्यू के साथ या इसके बिना भी काम करता है।

निम्नलिखित छवि StackView के साथ और उसके बिना दृष्टिकोण को दर्शाती है। "स्पेसरनाम" एक वैरिएबल चौड़ाई है, जिसमें UIView लेबल है और "SpacerPD" 80 की निश्चित चौड़ाई के साथ एक है। [रंग महत्वपूर्ण नहीं हैं; बस वहाँ दिखाने के लिए जहाँ विचार हैं।]

यहाँ छवि विवरण दर्ज करें


0

जैसा कि आप नीचे दी गई छवि में देख सकते हैं, मुझे "फिक्स्ड चौड़ाई की बाधाएं हो सकती हैं क्योंकि क्लिपिंग" में त्रुटि हो रही थी, क्योंकि मैंने अपने टेक्स्टबॉक्स को लंबवत रूप से केंद्रित करने के लिए सेट किया था और मेरे लेबल पर बाएं मार्जिन की बाधा थी, मैंने एक बाधा को परिभाषित नहीं किया था लेबल के संबंध में टेक्स्ट बॉक्स के लिए, इसलिए XCode मुझे सतर्क कर रहा था कि टेक्स्टबॉक्स लेबल को क्लिप कर सकता है (ऊपर प्रदान किया जा सकता है)।

यहाँ छवि विवरण दर्ज करें

पाठ बॉक्स में बाएं बाधा को जोड़ने के बाद लेबल से अलग कुछ दूरी पर रहने के लिए त्रुटि को XCode द्वारा हल किया गया माना जाता था और इसने मुझे अभी भी चेतावनी के साथ परेशान नहीं किया।


0

जब मैं सुपर व्यू के किनारों से समान पैडिंग के साथ बटन की कोशिश कर रहा था तो मेरे पास एक समान मुद्दा था।

त्रुटि का मामला

मैं करने के लिए horizontal centerबाधा और equal widthsबाधा का उपयोग कर समाप्त कर दिया है super view

मेरा समाधान


-1

त्रुटि को ठीक करने के लिए : निश्चित चौड़ाई की कमी के कारण क्लिपिंग हो सकती है और अन्य स्थानीयकरण आपको दृश्य / ऑब्जेक्ट का चयन करने की आवश्यकता है, "शो साइज इंस्पेक्टर" पर जाएं, चौड़ाई की कमी का पता लगाएं और कॉन्स्टेंट को ग्रेटर या बराबर करने के लिए सेट करें:

आकार निरीक्षक

त्रुटि को ठीक करने के लिए : अग्रणी / अनुगामी बाधा गायब है जो अन्य विचारों के साथ अतिव्यापी हो सकती है

इसका मतलब यह है कि दृश्य / वस्तु Xcode के बारे में शिकायत कर रहा है, एक पड़ोसी दृश्य के लिए एक अग्रणी या अनुगामी बाधा गायब है।

नियंत्रण रखते समय, पास / दृश्य द्वारा पास खींचें

Contrl + प्रेसक्लिक करें

एक अग्रणी या अनुगामी बाधा जोड़ें

अग्रणी / अनुगामी बाधा


यदि आप चेतावनी त्रिकोण पर क्लिक करते हैं तो Xcode अपने आप आपके लिए एक क्लिक से बना देगा।
लेंसोवेट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.