मैं एक ऐसी ही समस्या का सामना कर रहा है, को नियंत्रित करने के लिए किया था UIButton
के inset
उपयोग कर सकते हैं मेरे बटन और चाहते थे कि वे टेक्स्ट की मात्रा के आधार पर लंबवत रूप से बढ़ें।
- (void)setBounds:(CGRect)bounds {
if (!CGRectEqualToRect(bounds, self.bounds)) {
[self invalidateIntrinsicContentSize];
}
[super setBounds:bounds];
}
- (CGSize)intrinsicContentSize {
//
CGSize size;
self.titleLabel.frame = CGRectMake(self.titleLabel.frame.origin.x,
self.titleLabel.frame.origin.y,
self.frame.size.width - self.contentEdgeInsets.left - self.contentEdgeInsets.right - self.titleEdgeInsets.left - self.titleEdgeInsets.right,
0);
size = [self.titleLabel sizeThatFits:self.titleLabel.frame.size];
size = CGSizeMake(size.width, size.height + 20);
return size;
}
क्या मूल रूप से यहां होता है जो: मैं मैं क्या एप्पल डॉक्स (https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/ImplementingView/ImplementingView.html)
मैं UIButton
subclassed और दो कार्यों अधिरोहित किया है में अनुभव के आधार पर एक सरल समाधान के साथ समाप्त हो गया, बटन अपने आंतरिक आकार को अमान्य कर देता है (केवल तभी जब सीमा सेट वास्तव में नया होता है - यह एक अंतहीन पाश को रोकने के लिए होता है), और जब सिस्टम आंतरिक सामग्री आकार के लिए पूछता है, तो मैं बटन की चौड़ाई के आधार पर पुन: गणना करता हूं। अतिरिक्त 20px ऊंचाई पैडिंग के लिए है। मैंने कई अन्य तरीकों की कोशिश की है, लेकिन चूंकि मेरा लेआउट ऑटोलाउट पर आधारित है, इसलिए मुझे कुछ ऐसा चाहिए जो डिवाइस को घुमाए जाने पर अपडेट करने की ज़रूरत नहीं है। यह बस काम करता है।
शुभकामनाएं! जेड
स्रोत
2015-03-01 17:13:10
आपने मुझे सही दिशा में नेतृत्व किया ... धन्यवाद! – TigerCoding