मैं मेरे विचार नियंत्रक के अंदर एक subclassed पाठ फ़ील्ड देखने के लिए, फ़ॉन्ट आकार के साथ बनाया गया है खिलवाड़, AdjustFontSizeToWidth सक्षम है और 10 को न्यूनतम फ़ॉन्ट आकार। मेरे टेक्स्टफील्ड में दृश्यमान फिट करने के लिए प्लेसहोल्डर टेक्स्ट बहुत बड़ा है। चौड़ाई समायोजित फ़ॉन्ट आकार सक्रिय है और सिस्टम फ़ॉन्ट के आकार को पर कम कर रहा है। मुझे बिल्कुल पता नहीं है क्यों , क्योंकि प्लेसहोल्डर अभी भी फिट नहीं है (स्क्रीनशॉट देखें) कोई विचार यह क्यों हो रहा है? क्या मुझे कुछ याद आया? मैं subclassed UITextfield और निम्न विधियों को ओवरराइड (नहीं यकीन है कि यह प्रासंगिक है, लेकिन यह तरीकों जो इस कीड़े का कारण हो सकता होने लगते हैं):UITextField उपवर्ग को adjustFontSizeToWidth
- (CGRect)leftViewRectForBounds:(CGRect)bounds {
CGRect leftViewRect = [super leftViewRectForBounds:bounds];
if ([self shouldShowLeftView] == YES) {
CGFloat newHeight = self.frame.size.height * 0.5f;
if (self.leftImage) {
leftViewRect.size.width = newHeight;
}
leftViewRect.origin.x = kMargins;
leftViewRect.origin.y = (self.frame.size.height - leftViewRect.size.height)/2.0f;
}
return leftViewRect;
}
- (CGRect)textRectForBounds:(CGRect)bounds {
CGRect rectForBounds = [super textRectForBounds:bounds];
if ([self shouldShowLeftView] == YES) {
rectForBounds.origin.x += kMargins;
rectForBounds.size.width -= 2.0 * kMargins;
} else {
rectForBounds.origin.x += kMargins/2.0;
rectForBounds.size.width -= 2.0 * (kMargins/2.0);
}
return rectForBounds;
}
- (CGRect)editingRectForBounds:(CGRect)bounds {
CGRect rectForBounds = [super editingRectForBounds:bounds];
if ([self shouldShowLeftView] == YES) {
rectForBounds.origin.x += kMargins;
rectForBounds.size.width -= 2.0 * kMargins;
} else {
rectForBounds.origin.x += kMargins/2.0;
rectForBounds.size.width -= 2.0 * (kMargins/2.0);
}
return rectForBounds;
}
संपादित करें: अद्यतन, मैं this solution का उपयोग करने की कोशिश की और प्लेसहोल्डर के लिए भी काम करने के लिए कोड को थोड़ा सा अनुकूलित किया। फ़ॉन्ट का आकार बदलना ठीक है, लेकिन जब टेक्स्ट कम हो जाता है तो UI को गड़बड़ कर दिया जाता है, टेक्स्ट बाएं छवि दृश्य के पीछे बाईं ओर ऑफसेट होता है। स्क्रीनशॉट पर, हम देख सकते हैं कि सही मार्जिन बहुत बड़ा है और बाईं ओर टेक्स्ट बहुत अधिक है।
एक सिस्टम न्यूनतम फ़ॉन्ट आकार है। जहां तक आप उम्मीद कर रहे हैं, यूआईटीएक्स्टफाल्ड फ़ॉन्ट आकार को कम नहीं करेगा। – matt
मेरा न्यूनतम फ़ॉन्ट आकार 10 है, और प्लेसहोल्डर के पास डिफ़ॉल्ट रूप से दिए गए 15 के बजाय 14pt के साथ एक फ़ॉन्ट है, यह शायद गलत अनुमान लगाया गया है। यही कारण है कि मैं पूछ रहा हूँ। – Loadex