आप इसे कम से कम कोड में कर सकते हैं; मैं इंटरफ़ेस बिल्डर को त्यागने के लिए और कोड में इसे किसी भी तरह से जाने का प्रकार हूं। आईबी लगता है कि जब बाधाओं को जोड़ने या ट्विक करने की बात आती है तो उससे अधिक बार मेरे रास्ते में नहीं मिलता है। यहां मैंने अपने कस्टम UIToolbar
सबक्लास के -initWithFrame:
विधि में किया है।
- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
[self addSubview:self.label];
[self addConstraint:[NSLayoutConstraint
constraintWithItem:self.label
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self
attribute:NSLayoutAttributeCenterX
multiplier:1 constant:0]];
[self addConstraint:[NSLayoutConstraint
constraintWithItem:self.label
attribute:NSLayoutAttributeCenterY
relatedBy:NSLayoutRelationEqual
toItem:self
attribute:NSLayoutAttributeCenterY
multiplier:1 constant:0]];
}
return self;
}
और क्योंकि मैं के रूप में ज्यादा संभव के रूप में आलसी लोड करने के लिए हैं, तो यहां मेरी self.label
उदाहरण चर (जब [self addSubview:self.label]
ऊपर संदेश भेजा जाता है कहा जाता है) है।
- (UILabel *)label {
if (_label) return _label;
_label = [UILabel new];
_label.translatesAutoresizingMaskIntoConstraints = NO;
_label.textAlignment = NSTextAlignmentCenter;
return _label;
}
मेरे लिए काम करने लगता है। मैं कोई भी UIBarButtonItems
नहीं जोड़ रहा हूं, इसलिए, आपका माइलेज मेरा अलग-अलग है।
स्रोत
2013-06-19 15:32:36
मैंने पहले इस तरह की कुछ सामान किया है की तलाश में stumbbled, हालांकि मैं मूल रूप से देखने के आकार के आकार की प्रतीक्षा करता हूं और फिर तदनुसार लक्ष्य दृश्य के फ्रेम को अद्यतन करता हूं। यह हमेशा एक विकल्प है अगर यह पता चला कि स्वचालित रूप से ऐसा करने का कोई तरीका नहीं है। – Brian
क्या आप एक छवि पोस्ट कर सकते हैं? –
मैं चाहता था, लेकिन मैं ऑटोलाउट छोड़ने और ऑटोरेसाइजिंगस्क का उपयोग करने के लिए वापस जा रहा था। यह उस मॉडल का उपयोग करके बहुत अच्छा काम करता है। – outerstorm