2013-11-21 5 views
10

मेरे पास दो पूरी तरह से अलग स्थितियों में समस्या है, जो इसे वास्तव में अजीब बनाता है।बटन के हाइलाइट किए गए राज्य की देरी

  1. स्थिति: एक UIButton किसी अन्य UIView के उप दृश्य के रूप में।
  2. स्थिति: UIBarButtonItem UIToolBar में है।

दोनों परिस्थितियों में बटन को थोड़ी देर के बाद केवल 5-5 सेकंड के बाद हाइलाइट किया जाता है। सामान्य रूप से टैप करते समय दृश्य को हाइलाइट करने के लिए निश्चित रूप से लंबे समय तक। वे दोनों सिम्युलेटर पर पूरी तरह से काम करते हैं, लेकिन असली डिवाइस पर नहीं (मेरे पास आईओएस 7.0.4 के साथ आईफोन 5 एस है)।

मैं क्या करने की कोशिश की
उच्चतम मूल्य इन देखे जाने के (MAXFLOAT), के लिए zPosition स्थापना कुछ भी नहीं सुनिश्चित करने के लिए नल ब्लॉक कर रहा है।
स्पष्ट रूप से हाइलाइटिंग को सक्षम करना।

दोनों स्पष्ट रूप से काम नहीं करते हैं।

संपादित करें: अभी भी हल नहीं किया गया है।

+0

क्या आप उन बटनों को टैप करते समय मुख्य थ्रेड पर सर्वर कॉल की तरह कुछ नहीं कर रहे हैं? इससे हाइलाइट में देरी हो सकती है। यदि हां, तो आपको उन कॉल को पृष्ठभूमि में बनाना चाहिए। – FabKremer

+0

एक छवि को पीएनजी प्रारूप में हाइलाइट किया गया है? –

+0

मुझे लगता है कि आप उन बटनों को टैप करते समय कुछ भारी काम कर रहे हैं। छवि प्रतिपादन मुख्य धागे पर काम कर रहा है। आप बटन के लिए IBAction फ़ंक्शन जांच सकते हैं। – Joey

उत्तर

0

क्या UIScrollView के अंदर UIButtons हैं? यदि वे हैं, तो विलंब होता है इसलिए स्क्रॉलव्यू यह निर्धारित कर सकता है कि स्पर्श स्क्रॉलिंग के लिए है या नहीं, इसे सबव्यूव में पास किया जाना चाहिए।

भी देखें UIButton touch is delayed when in UIScrollView

+0

सं। इसके अलावा: मैंने सुनिश्चित किया कि वहां नहीं थे और इस बारे में पूरी तरह से अवगत थे। – Leandros

0

मैं जानता हूँ कि यह एक लंबा समय हो गया है, लेकिन मैं सिर्फ वही समस्या का सामना करना पड़ा:

  • मेरे UIButton वहाँ सिम्युलेटर
  • पर बिल्कुल भी देर नहीं UINavigationController.view
  • की एक subview है
  • लेकिन डिवाइस पर हाइलाइट दिखाने में देरी हुई है

मुझे अभी पता चला है कि यह तब होता है जब मैं एक्सकोड से ऐप चलाता हूं। अगर मैं डिवाइस को डिस्कनेक्ट करता हूं और ऐप को इसके आइकन से खोलता हूं तो सब कुछ ठीक काम करता है।

मुझे उम्मीद है कि यह मदद करता है।

2

यह तब हो सकता है जब बटन डिस्प्ले के निचले किनारे के नजदीक स्थित हों। नियंत्रण केंद्र (या आईफोन एक्स और आईपैड पर ऐप स्विचर) पेश करने के लिए सिस्टम एज इशारा के साथ एक संघर्ष है। यह आपके बटनों के लिए छूता है जब तक कि यह निर्धारित न हो कि उपयोगकर्ता सिस्टम इशारा नहीं कर रहा है।

यदि आप चाहें, तो आप सिस्टम जेस्चर पर अपने इशारे को प्राथमिकता देने के लिए सिस्टम को बता सकते हैं।

override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge { 
    return .bottom 
} 

ध्यान दें कि उपयोगकर्ता को सिस्टम इशारा को सक्रिय करने के लिए उपयोगकर्ता को दो बार स्वाइप करने की आवश्यकता होगी।

संबंधित मुद्दे