एनिमेट करते समय अजीब व्यवहार मैं UITextField
को एनिमेट करने की कोशिश कर रहा हूं लेकिन मुझे एक परेशान और अजीब समस्या से पकड़ा गया है।UITextField
पहले राज्य में आवेदन UITextField
है, कैमरा UIButton
और कैमरा बटन है कि क्योंकि यह सीमा से बाहर तैनात किया गया है पता चला नहीं किया गया के बाद रद्द UIButton
: मेरी एनीमेशन निम्न क्रम है आवेदन के असल में अपने आवेदन की चौड़ाई 320 है और रद्द बटन मूल (350,7)
दूसरे राज्य में, जब UITextField
पर उपयोगकर्ता छूता है, कैमरा बटन अल्फ़ा चैनल 0 पर सेट है और का मूल है रद्द करें बटन (247,7) पर सेट है।
अंतिम अवस्था पहला राज्य उपयोगकर्ता के बाद कीबोर्ड की वापसी बटन पर या में छुआ बटन को रद्द के समान है।
प्रक्रिया के दौरान यूआईटीक्स्टफिल्ड चौड़ाई और एक्स अक्ष में रद्द बटन मूल एनिमेटेड हैं।
मेरे कोड है:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
barcodeSearchButton.userInteractionEnabled = NO;
cancelButton.userInteractionEnabled = NO;
CGFloat cancelButtonXOffset = CGRectGetMaxX(barcodeSearchButton.frame) - cancelButton.frame.size.width;
CGFloat searchFieldWidth = searchField.frame.size.width - cancelButton.frame.size.width + barcodeSearchButton.frame.size.width;
[UIView animateWithDuration:0.3
animations:^{
searchField.frame = CGRectMake(searchField.frame.origin.x, searchField.frame.origin.y, searchFieldWidth, searchField.frame.size.height);
cancelButton.alpha = 1.0;
cancelButton.frame = CGRectMake(cancelButtonXOffset, cancelButton.frame.origin.y, cancelButton.frame.size.width,cancelButton.frame.size.height);
barcodeSearchButton.alpha = 0.0;
}
completion:^(BOOL finished) {
barcodeSearchButton.userInteractionEnabled = NO;
cancelButton.userInteractionEnabled = YES;
}];
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
barcodeSearchButton.userInteractionEnabled = NO;
cancelButton.userInteractionEnabled = NO;
[UIView animateWithDuration:0.3
animations:^{
searchField.frame = CGRectMake(searchField.frame.origin.x, searchField.frame.origin.y, searchFieldStartWidth, searchField.frame.size.height);
cancelButton.alpha = 0.0;
cancelButton.frame = CGRectMake(cancelButtonStartX, cancelButton.frame.origin.y, cancelButton.frame.size.width,cancelButton.frame.size.height);
barcodeSearchButton.alpha = 1.0;
}
completion:^(BOOL finished) {
barcodeSearchButton.userInteractionEnabled = YES;
cancelButton.userInteractionEnabled = NO;
}];
}
जब एनीमेशन केवल पहली बार है, जिसका अर्थ के लिए अंतिम अवस्था तक क्रियान्वित किया जाता है, उपयोगकर्ता UITextField को छुआ, नीचे लिखा (इस भाग महत्वपूर्ण है) मैदान पर कुछ पाठ और उसके बाद उपयोगकर्ता कुंजीपटल रिटर्न बटन पर छू गया समस्या दिखाई देती है। समस्या यह है कि UITextField में टाइप किया गया टेक्स्ट एनिमेटेड होता है जब UITextField की चौड़ाई भी एनिमेटेड होती है।
एनीमेशन bellow तरह बर्ताव करता है: वापस अपने प्रारंभिक मूल्य के लिए
UITextField
हिस्सों।- रद्द करें बटन पीठ अपनी प्रारंभिक मूल के
- कैमरा बटन 1.0
- लिखे गए पाठ
UITextField
के ऊपरी-बाएं कोने से मक्खियों के लिए निर्धारित है और यह स्थिति के लिएUITextfield
में भूमि आईटी चले गए हैं नहीं करना चाहिए।
समस्या यह है कि चरण 4 नहीं होना चाहिए और समस्या यह केवल एक बार होती है। यदि प्रक्रिया फिर से शुरू होती है (uitextfield पर स्पर्श करें, कुछ टेक्स्ट टाइप करें, वापसी कुंजी पर स्पर्श करें) चरण 4 नहीं होता है।
मैं इस समस्या को हल करने के लिए एक दिन लंबा खर्च करता हूं लेकिन मैं असफल रहा।
इसके अलावा, प्लेसहोल्डर पाठ संपत्ति के बजाय पाठ का उपयोग कर अपने रंग के साथ गड़बड़, आपको लगता है कि ठीक करने के लिए ऊपर के साथ-साथ होगा तो हो सकता है। –