2013-09-08 5 views
12

मैं आईओएस विकास के लिए नया हूँ। मैं जानता हूँ कि यह सवाल पहले से ही है या नहीं कहा गया है कि क्या नहीं है, मैं stackoverflow पर समाधान के लिए खोज की कोशिश की लेकिन कोई भी परिणाम नहीं मिला।मैं एक UILabel के किसी विशेष भाग (-स्ट्रिंग) पर नल कैसे पता लगा सकते हैं?

प्रश्न:

मैं एक UILabel पाठ के साथ myLabel कहा जाता है:

अब समस्या मैं एक काम करवाना चाहते हैं है "आगे बढ़ने के लिए यहाँ क्लिक करें" जब उपयोगकर्ता टैप करता केवल "पर क्लिक करें "।

मुझे पता है कि UITapGestureRecognizer का उपयोग कैसे करें, लेकिन यह पूरे UILabel पर प्रतिक्रिया करता है। क्या यह पता लगाना संभव है कि उपयोगकर्ता केवल "क्लिक" स्ट्रिंग पर टैप करता है?

+2

आप [इस में कुछ संभावित रूप से उपयोगी जवाब बारीकी से मिल सकता है:

एक बार जब आप चौड़ाई है, तो आप और नल के स्थान, आप अगर शब्द "क्लिक" की तुलना द्वारा उपयोग किया गया था की जांच कर सकते संबंधित (नकल नहीं करता है, तो) सवाल] (http://stackoverflow.com/questions/1256887/clickable-links-in-uilabel)। –

उत्तर

5

आप अगर यह शब्द "क्लिक करें" पर है देखने के लिए स्पर्श के स्थान की जांच कर सकता है। यदि आप अपने लेबल में टेक्स्ट बदलते हैं तो यह पूरी तरह से सटीक नहीं हो सकता है और टूट सकता है।

क्या आप पहली बार का उपयोग करके क्लिक के स्थान मिल रहा है कर सकता है:

CGPoint location = [gesture locationInView:gesture.view]; 

इससे आपका दृश्य में इशारा का स्थान हो जाता है।

UILabel *sizeLabel = //create label with same font. 
[sizeLabel setText:@"Click"]; 
float width = [sizeLabel sizeThatFits:CGSizeMake(MAXFLOAT,MAXFLOAT)].width; 

:

बार जब आप इस किया है, आप या तो शब्द का आकार हो सकता है जैसे कि "क्लिक करें" हार्ड-कोडेड या आप अपने इशारे लेबल के लिए एक समान लेबल बना सकते हैं आकार पाने के लिए, जब वास्तविक लेबल बनाते समय भी आप ऐसा करते हैं और एक स्थिर चर में इस चौड़ाई की दुकान है, ताकि आप केवल एक बार क्या करना है और आप एक अतिरिक्त लेबल बनाने की जरूरत नहीं है हो सकता है (यानी @ करने के लिए अपने असली लेबल का पाठ सेट " "चौड़ाई प्राप्त करें, और फिर इसे वास्तविक पाठ पर सेट करें" पर क्लिक करें।

if (location.x < width) { 
    //Put your tap code in here. 
} 
+0

धन्यवाद ... मैं इस कोशिश करता हूँ .. –

+0

मैं [मेरा उत्तर यहाँ में पूर्ण उदाहरण] है (http://stackoverflow.com/a/29352519/168594) कैसे 'UILabel',' UITapGestureRecognizer के साथ ऐसा करने दिखा ', और' NSAttributedString' - कोई सबक्लासिंग आवश्यक नहीं है। – zekel

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