दिलचस्प पोस्ट
Asp.net mvc में JsonResult के माध्यम से एक ExpandoObject लौटाए कैसे? एकाधिक डेटाबेस में LINQ सत्र के अंत में समाप्त होने वाली कुकी सेट करें? asp.net एनजीएनएक्स किसी भी डोमेन नाम का जवाब क्यों दे रहा है? JQuery के साथ, मैं एक टेक्स्ट फ़ील्ड के पहले अक्षर को कैपिटल कैसे कर सकता हूं, जबकि उपयोगकर्ता उस फ़ील्ड को अभी भी संपादित कर रहा है? मुख्य स्क्रॉलबार को हमेशा दृश्यमान बनाना एंड्रॉइड फेसबुक स्टाइल स्लाइड MATLAB में & amp और && के बीच अंतर क्या है? एडिशट (*) के लिए संपादन टेक्स्ट पासवर्ड मास्क वर्ण बदलें लिनक्स में दो सूचियों के बीच एक लिंक स्थापित करें जहां खंड सी ++ / सीएलआई मिश्रित मोड डीएलएल सृजन एंड्रॉइड केनवास आयताकार आकर्षित क्लैग त्रुटि: अज्ञात तर्क: '-mno-fused-madd' (अजगर पैकेज स्थापना विफलता) तालिका में प्रत्येक समूह के लिए शीर्ष एन पंक्तियों का चयन करना यूट्यूब वीडियो के लिए सीधे यूआरएल कैसे प्राप्त करें

जब UITextField पहले उत्तरदाता बन जाता है तो UIScrollView स्क्रोलिंग को अक्षम करें

जब UITcrollView में एम्बेडेड, पहले रिसाइडर बन जाता है, तो कह सकते हैं कि उपयोगकर्ता कुछ वर्ण में लिख रहे हैं, उस फ़ील्ड को स्वचालित रूप से UIScrollView स्क्रॉल, वह अक्षम करने का कोई तरीका है?

Https://bugreport.apple.com पर डुप्लिकेट rdar: // 16538222

Solutions Collecting From Web of "जब UITextField पहले उत्तरदाता बन जाता है तो UIScrollView स्क्रोलिंग को अक्षम करें"

मोश के जवाब पर भवन …

उप-वर्ग UIScrollView और निम्न विधि को ओवरराइड करें:

 - (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated 

इसे खाली छोड़ दें काम हो गया!

मैं एक ही समस्या से जूझ रहा हूं, और आखिर में मुझे समाधान मिल गया है

मैंने जांच की है कि कॉल-ट्रेस पर नज़र रखने के द्वारा ऑटो-स्क्रॉल कैसे किया जाता है, और पाया गया कि एक आंतरिक [UIFieldEditor scrollSelectionToVisible] कहलाता है जब एक पत्र UITextField में टाइप किया जाता है। यह विधि UITextField के निकटतम पूर्वजों के UITextField

इसलिए, textFieldDidBeginEditing पर, एक नया UIScrollView साथ समान आकार के साथ UITextField लपेटकर, (यह है, UITextField और उसके UITextField बीच में दृश्य को सम्मिलित करना), यह स्वत:-स्क्रॉल को अवरोधित करेगा। अंत में इस आवरण को textFieldDidEndEditing पर निकालें।

कोड इस तरह होता है:

 - (void)textFieldDidBeginEditing:(UITextField*)textField { UIScrollView *wrap = [[[UIScrollView alloc] initWithFrame:textField.frame] autorelease]; [textField.superview addSubview:wrap]; [textField setFrame:CGRectMake(0, 0, textField.frame.size.width, textField.frame.size.height)]; [wrap addSubview: textField]; } - (void)textFieldDidEndEditing:(UITextField*)textField { UIScrollView *wrap = (UIScrollView *)textField.superview; [textField setFrame:CGRectMake(wrap.frame.origin.x, wrap.frame.origin.y, wrap.frame.size.width, textField.frame.size.height)]; [wrap.superview addSubview:textField]; [wrap removeFromSuperview]; } 

उम्मीद है की यह मदद करेगा!

मेरे पास यूआईटीएक्स्टव्यू के ऑटो-स्क्रोलिंग को निष्क्रिय करने के साथ ही एक समस्या थी, जो UITextView सेल मैं निम्नलिखित दृष्टिकोण का उपयोग कर इसे हल करने में सक्षम था:

 @interface MyTableViewController : UITableViewController<UITextViewDelegate> @implementation MyTableViewController { BOOL preventScrolling; // ... } // ... set self as the delegate of the text view - (void)textViewDidBeginEditing:(UITextView *)textView { preventScrolling = YES; } - (void)scrollViewDidScroll:(UIScrollView *)scrollView { if (preventScrolling) { [self.tableView setContentOffset:CGPointMake(0, -self.tableView.contentInset.top) animated:NO]; } } - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { preventScrolling = NO; } 

स्क्रॉलव्यूव्वेलविबिन scrollViewWillBeginDragging को परिभाषित करते हुए डिफ़ॉल्ट स्क्रॉल व्यवहार को बहाल करने के लिए उपयोग किया जाता है, जब उपयोगकर्ता स्वयं स्क्रॉल शुरू करता है।

जैसा कि टेकेटो ने उल्लेख किया है, जब यूआईटीफ़ेस्टफिल्ड को पहली प्रतिक्रिया दी जाती है, तो उसका पहला अभिभावक दृष्टिकोण जो कि UIScrollView (यदि कोई मौजूद है) की है तो उस यूआईटीप्लेफ़िल्ड दृश्यमान को बनाने के लिए स्क्रॉल किया गया है। सबसे आसान हैक केवल एक UIScrollView में प्रत्येक UITextField को लपेट करना है (या आदर्श रूप से, उन्हें एक एकल डमी UIScrollView में लपेटें) यह टेकेटो के समाधान के समान है, लेकिन आपको थोड़ा बेहतर प्रदर्शन करना चाहिए, और यह आपके कोड (या इंटरफ़ेस बिल्डर में आपके इंटरफेस) को मेरी राय में बहुत क्लीनर रखेगा।

ऐसा लगता है कि UIScrollview जो UITextfield को शामिल करता है, ऑटो इसकी सामग्री ऑफ़सेट समायोजित करता है; जब टेक्स्टफील्ड पहले उत्तरदाता बनने जा रहा है इसे पहले समान आकार के स्क्रॉलएव्यू में टेक्स्टफ़ाइल जोड़कर और फिर मुख्य स्क्रॉल दृश्य में जोड़कर हल किया जा सकता है। मुख्य स्क्रॉलव्यू में सीधे जोड़ने के बजाय

  // Swift let rect = CGRect(x: 0, y: 0, width: 200, height: 50) let txtfld = UITextField() txtfld.frame = CGRect(x: 0, y: 0, width: rect.width, height: rect.height) let txtFieldContainerScrollView = UIScrollView() txtFieldContainerScrollView.frame = rect txtFieldContainerScrollView.addSubview(txtfld) // Now add this txtFieldContainerScrollView in desired UITableViewCell, UISCrollView.. etc self.mainScrollView.addSubview(txtFieldContainerScrollView) // Am33T 

यह मैं जिस तरह से करता हूं:

यह बहुत आसान है, आप किसी भी scrollRectToVisible के लिए अपनी खुद की सामग्री वापस लेने के लिए मिलता है।

इस तरह आप सामान्य व्यवहार और चीजों के प्रवाह को नुकसान नहीं पहुंचा रहे हैं – केवल एक ही चैनल में एक ही कार्यक्षमता को अपने स्वयं के सुधारों के साथ प्रदान करते हैं।

 #import <UIKit/UIKit.h> @protocol ExtendedScrollViewDelegate <NSObject> - (CGPoint)scrollView:(UIScrollView*)scrollView offsetForScrollingToVisibleRect:(CGRect)rect; @end @interface ExtendedScrollView : UIScrollView @property (nonatomic, unsafe_unretained) id<ExtendedScrollViewDelegate> scrollToVisibleDelegate; @end #import "ExtendedScrollView.h" @implementation ExtendedScrollView - (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated { if (_scrollToVisibleDelegate && [_scrollToVisibleDelegate respondsToSelector:@selector(scrollView:offsetForScrollingToVisibleRect:)]) { [self setContentOffset:[_scrollToVisibleDelegate scrollView:self offsetForScrollingToVisibleRect:rect] animated:animated]; } else { [super scrollRectToVisible:rect animated:animated]; } } @end 

मैंने टैकटोसंनो के जवाब की कोशिश की है, लेकिन काम नहीं लगता है .. मेरा मामला यह है कि मेरे पास कोई स्क्रॉलव्यू नहीं है, केवल कई पाठ क्षेत्रों के साथ एक दृश्य है

और अंत में, मुझे एक वैकल्पिक हल मिला। मुझे कीबोर्ड की आवश्यकता के लिए दो डिफ़ॉल्ट अधिसूचना नाम हैं:

  • UIKeyboardDidShowNotification जब कुंजीपटल दिखाया था;
  • UIKeyboardWillHideNotification जब कीबोर्ड छुपाएगा

यहां मैंने इस्तेमाल किया नमूना कोड है:

 - (void)viewDidLoad { [super viewDidLoad]; ... NSNotificationCenter * notificationCetner = [NSNotificationCenter defaultCenter]; [notificationCetner addObserver:self selector:@selector(_keyboardWasShown:) name:UIKeyboardDidShowNotification object:nil]; [notificationCetner addObserver:self selector:@selector(_keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; } - (void)_keyboardWasShown:(NSNotification *)note { [self.view setFrame:(CGRect){{272.f, 55.f}, {480.f, 315.f}}]; } - (void)_keyboardWillHide:(NSNotification *)note { [self.view setFrame:(CGRect){{272.f, 226.5f}, {480.f, 315.f}}]; } 

यहां, (CGRect){{272.f, 226.5f}, {480.f, 315.f}} दृश्य का डिफ़ॉल्ट फ्रेम है जब कीबोर्ड छिपा हुआ होता है और (CGRect){{272.f, 55.f}, {480.f, 315.f}} दृश्य की फ़्रेम है जब कीबोर्ड दिखाया गया था।

और बीटीडब्ल्यू, दृश्य के फ़्रेम को बदलने के लिए एनीमेशन स्वचालित रूप से लागू किया जाएगा, यह वाकई सही है!

मुझे यूआईएसक्रोलएव्यू के किसी भी प्रॉपर्टी के बारे में नहीं पता है जो उसको अनुमति देगा। यह अक्षम उपयोगकर्ता अनुभव होगा जो इसे अक्षम करने में सक्षम होगा, आईएमएचओ

उसने कहा, UIScrollView subclass और इसके कुछ तरीकों को ओवरराइड करने के लिए संभव हो सकता है यह जांचने के लिए कि UITextfield स्क्रॉल करने से पहले एक पहली प्रतिक्रिया नहीं है।

मेरे पास एक शीर्ष स्थान पर पाठ फ़ील्ड के साथ एक संग्रह दृश्य है, जो UITableView.tableHeaderView नकल करता है। यह पाठ फ़ील्ड ऑफ़सेट स्पेस नकारात्मक सामग्री में स्थित है, ताकि यह शेष संग्रह दृश्य में हस्तक्षेप न करे। मैं मूल रूप से पता लगाता हूं कि उपयोगकर्ता स्क्रॉल दृश्य में स्क्रॉल कर रहा है या नहीं और यह कि पाठ फ़ील्ड पहले प्रतिसादकर्ता है या नहीं, और यदि स्क्रॉल व्यू स्क्रॉल व्यू की सामग्री इनसेट के ऊपर से स्क्रॉल किया जा रहा है या नहीं। यह सटीक कोड जरूरी किसी की मदद नहीं करेगा, लेकिन वे इसे अपने केस में फिट करने के लिए हेरफेर कर सकते हैं।

 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { // This is solving the issue where making the text field first responder // automatically scrolls the scrollview down by the height of the search bar. if (!scrollView.isDragging && !scrollView.isDecelerating && self.searchField.isFirstResponder && (scrollView.contentOffset.y < -scrollView.contentInset.top)) { [scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x, -scrollView.contentInset.top) animated:NO]; } } 

ल्यूक के जवाब पर बिल्डिंग, इस मुद्दे को संभालने के लिए कि उनका समाधान पूरी तरह से ऑटो-स्क्रॉल को अक्षम करता है, आप चुनिंदा इसे निम्नानुसार अक्षम कर सकते हैं:

 // TextFieldScrollView #import <UIKit/UIKit.h> @interface TextFieldScrollView : UIScrollView @property (assign, nonatomic) IBInspectable BOOL preventAutoScroll; @end @implementation TextFieldScrollView - (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated { if (self.preventAutoScroll == NO) { [super scrollRectToVisible:rect animated:animated]; } } @end 

इस तरह, आप ऑटो-स्क्रोल को अक्षम करने के लिए इंटरफेस बिल्डर में पूरी तरह से सेट अप कर सकते हैं, लेकिन इसे फिर से सक्षम करने के लिए किसी भी समय पूरा नियंत्रण कर सकते हैं (हालांकि आप मुझे क्यों नहीं छोड़ना चाहते हैं)।

जब आप एक पाठ का चयन करते हैं तो स्क्रॉलव्यू स्क्रॉलिंग को रोकने का एक आसान तरीका आपके दृश्य में है: नियंत्रक :: viewWillAppear () कॉल न करें [सुपर व्यूव्वलएपियर];

आप स्क्रॉल को अपनी इच्छा के अनुसार नियंत्रित कर सकते हैं।