2012-02-14 15 views
6

में टेक्स्ट का स्थान {x, y} ढूंढें, मेरे पास सर्वर से आने वाली एक स्ट्रिंग है जिसे मैं UILabel multiligne पर प्रदर्शित कर रहा हूं। यह उस स्ट्रिंग के भीतर है, मैं कुछ विशेष सबस्ट्रिंग की पहचान कर रहा हूं। मैं उस सबस्ट्रिंग पर एक बटन रखना चाहता हूं (बटन UILabel का एक सबव्यूव होगा)। इसके लिए मुझे substring निर्देशांक की आवश्यकता है। मैं इसके माध्यम से गया लेकिन मैं इसे समझने में सक्षम नहीं हूँ। मान लीजिए मेरी पूरी स्ट्रिंग एबीसी है, 567-324-6554, न्यूयॉर्क। मैं चाहता हूं कि 567-324-6554 बटन पर प्रदर्शित किया जाए जिसके लिए मुझे इसके निर्देशांक की आवश्यकता है। सबस्ट्रिंग के निर्देशांक खोजने के लिए मैं उपरोक्त लिंक का उपयोग कैसे कर सकता हूं? धन्यवाद,uilabel

+1

UILabel मल्टीलिग्ने – freind

उत्तर

7

UILabel में ऐसा करने के लिए कोई तरीका नहीं है। आप UITextView के साथ ऐसा कर सकते हैं, क्योंकि यह UITextInput protocol लागू करता है। आप टेक्स्ट व्यू की editable संपत्ति NO पर सेट करना चाहेंगे।

कुछ इस अपरीक्षित कोड की तरह काम करना चाहिए:

- (CGRect)rectInTextView:(UITextView *)textView stringRange:(CFRange)stringRange { 
    UITextPosition *begin = [textView positionFromPosition:textView.beginningOfDocument offset:stringRange.location]; 
    UITextPosition *end = [textView positionFromPosition:begin offset:stringRange.length]; 
    UITextRange *textRange = [textView textRangeFromPosition:begin toPosition:end]; 
    return [textView firstRectForRange:textRange]; 
} 

यह एक CGRect लौटना चाहिए (पाठ में की समन्वय प्रणाली देखने) कि सबस्ट्रिंग stringRange द्वारा निर्दिष्ट शामिल किया गया। यदि आप बटन को टेक्स्ट व्यू का सबव्यूव करते हैं, तो आप बटन के फ्रेम को इस आयत पर सेट कर सकते हैं।

यदि सबस्ट्रिंग एकाधिक रेखाएं फैलती है, तो आयताकार केवल पहली पंक्ति को कवर करेगा।

+0

है, मैं UITextView में इस स्ट्रिंग "***" के x और y को ढूंढना चाहता हूं, क्या आप मुझे thx bro – freind

+2

मेरी सहायता पढ़ सकते हैं। –

+0

मैं ऐसा करने की कोशिश करता हूं लेकिन इसकी त्रुटि CGRect * varf = [self rectInTextView: select4 stringRange: @ "***"]; – freind