मैं प्रतिक्रिया मूल आईओएस के लिए एक कस्टम दृश्य लिख रहा हूँ।प्रतिक्रियात्मक मूल को कैसे सूचित किया जाए कि कस्टम दृश्य का आकार बदल गया है?
मूल रूप से मुझे जितना संभव हो सके टेक्स्ट को बनाना होगा (वर्तमान दृश्य के दृश्य के आधार पर)। मैंने इसे reactSetFrame
ओवरराइड करके और फ्रेम को बदलकर किया है। केवल मुद्दा दृश्य की स्थिति गलत है कि है, यहाँ एक स्क्रीनशॉट:
ऐसा लगता है "लेआउट प्रबंधक" देशी प्रतिक्रिया के बारे में सोचती है कि उस दृश्य दिखाई देते हैं ऊंचाई 0.
यहाँ कोड:
- (void)reactSetFrame:(CGRect)frame {
[super reactSetFrame:frame];
NSLog(@"react set frame %@", NSStringFromCGRect(frame));
[self fitText:self.text];
}
- (void)fitText:(NSString *)text {
// ... get the correct font size and expected size
[self setFont:font];
CGRect newFrame = self.frame;
newFrame.size.height = expectedLabelSize.height;
NSLog(@"new frame is %@", NSStringFromCGRect(newFrame));
self.frame = newFrame;
}
मूल रूप से जब फ्रेम परिवर्तन मैं पाठ कि पारित किया गया था के आधार पर सही आयामों के साथ फ्रेम को अद्यतन करने कर रहा हूँ।
2017-06-25 16:43:16.434 ABC[44836:6551225] react set frame {{0, 0}, {375, 0}}
2017-06-25 16:43:16.435 ABC[44836:6551225] new frame is {{0, 0}, {375, 69.197000000000017}}
2017-06-25 16:43:16.435 ABC[44836:6551225] react set frame {{0, 0}, {375, 0}}
2017-06-25 16:43:16.436 ABC[44836:6551225] new frame is {{0, 0}, {375, 85.996999999999986}}
मैं फिर से नया फ्रेम के साथ reactSetFrame
बुला की कोशिश की है, लेकिन यह काम नहीं कर रहा:
लॉग उत्पादन इस है। क्या प्रतिक्रियात्मक मूल को बताने का कोई तरीका है कि दृश्य का आकार बदल गया है?
आप जावास्क्रिप्ट के मूल निवासी से डेटा भेजने के लिए चाहते हैं:
तब मैं उपाय समारोह है कि योग के द्वारा प्रयोग किया जाता है सही ऊंचाई पाने के लिए के कार्यान्वयन बदलना पड़ा? – Codesingh
@ कोडिंगिंग वास्तव में नहीं, मुझे "लेआउट मैनेजर" को देखने के वास्तविक आकार को जानने की ज़रूरत है :) – patrick