2015-03-24 5 views
5

के माध्यम से दो दृश्यों को कैसे केंद्रित करें I नीचे अपनी तस्वीर के रूप में मेरे UIImageView और UILabel को केंद्र बनाना चाहते हैं। मैंने UIImageView और UILabel को रखने के लिए एक कंटेनर का उपयोग किया, लेकिन कंटेनर UIImageView और UILabel की चौड़ाई के अनुरूप नहीं है। इसलिए मुझे कंटेनर की चौड़ाई सेट करने की आवश्यकता है। क्या चौड़ाई निर्धारित किए बिना समस्या को हल करने के लिए कोई तरीका है या गणना करें देखने की चौड़ाई?आईओएस PureLayout

MyLabel

उत्तर

7

कार्रवाई में चार दृश्य हैं:: यहाँ चित्र है

  1. बाहरी या मुख्य दृश्य
  2. कंटेनर दृश्य
  3. चित्र दृश्य
  4. लेबल (छवि और लेबल शामिल हैं) देखें

विचारों पदानुक्रम निम्नलिखित में हैं:

  1. बाहरी दृश्य
    1. कंटेनर देखें
      1. चित्र दृश्य
      2. लेबल दृश्य

मुझे लगता है कि बाहरी मान देखें इसकी चौड़ाई एक हो जाता है अन्य बाधाओं से डी ऊंचाई।

मैं छवि आप उस छवि प्रदान की से क्या देखते लेबल से अधिक लंबी है, निम्न बातों का constrains को प्राप्त कर सकता है कि आप क्या चाहते हैं रखने: बाहरी देखने के लिए कंटेनर को देखने के

  1. संरेखित एक्स अक्ष
  2. संरेखित बाहरी दृश्य
  3. पिन शीर्ष, छोड़ दिया और कंटेनर को देखने के लिए छवि को देखने के निचले किनारे
  4. कंटेनर को देखने के लिए लेबल की
  5. पिन दाहिने किनारे
  6. संरेखित वाई Labe के अक्ष के कंटेनर को देखने के Y अक्ष कंटेनर देखने के लिए एल।
  7. छवि और लेबल दृश्य के बीच क्षैतिज दूरी सेट करें।
+0

आपने अपना दिन बचाया! – Thorax

+0

इस तरह की टिप्पणियाँ stackoverflow पर जवाब देने के लिए उपयुक्त बनाता है। कीप आईटी उप। – Abdullah

+0

यह काम करता है! मेरे मामले में मैंने बाहरी दृष्टिकोण को चौड़ाई की बाधा डाली है, इसके बाद मैंने लेबल किया है क्योंकि लेबल टेक्स्ट गतिशील है और यह –

2
[self.button autoPinEdgeToSuperviewEdge:ALEdgeLeft withInset:15]; 
[self.button autoPinEdgeToSuperviewEdge:ALEdgeRight withInset:15]; 
[self.button autoSetDimension:ALDimensionHeight toSize:46]; 
[self.button autoAlignAxis:ALAxisVertical toSameAxisOfView:self.contentView]; 

[self.containerView autoAlignAxisToSuperviewAxis:ALAxisHorizontal]; 
[self.containerView autoAlignAxisToSuperviewAxis:ALAxisVertical]; 

[self.iconImageView autoPinEdge:ALEdgeLeft toEdge:ALEdgeLeft ofView:self.containerView]; 
[self.iconImageView autoAlignAxisToSuperviewAxis:ALAxisHorizontal]; 

[self.label autoPinEdge:ALEdgeRight toEdge:ALEdgeRight ofView:self.containerView]; 
[self.label autoAlignAxisToSuperviewAxis:ALAxisHorizontal]; 

[self.label autoPinEdge:ALEdgeLeft toEdge:ALEdgeRight ofView:self.iconImageView withOffset:10]; 

@abdullah के लिए धन्यवाद। उसने मेरा दिमाग साफ कर दिया। मैं "कंटेनर व्यू पर लेबल के दाएं किनारे को पिन करना" भूल गया, इसलिए containerView का width बन गया 0.