में यूआरएल का पता लगाएं मेरे पास एक टेबलव्यू और टेबलव्यू सेल है जिसे UILabel रखने के लिए अनुकूलित किया गया है। UILabel में पाठ में यूआरएल हैं। यूआईएलएक्स्टव्यू यूआरएल का पता लगाने में सक्षम होगा जैसे यूआरएल का पता लगाने का कोई तरीका है ताकि यूजर इंटरैक्शन यूआरएल लोड करने में सक्षम हो।UILabel
UILabel
उत्तर
यदि आप केवल यूआरएल की पहचान करना चाहते हैं, तो आप NSTextCheckingTypeLink
चेकिंग प्रकार के साथ NSDataDetector
का उपयोग कर सकते हैं।
यदि आप यूआरएल को अलग-अलग आकर्षित करना चाहते हैं, और आप आईओएस 6 को लक्षित कर रहे हैं, तो आप यूआरएल को नीला या उन्हें रेखांकित करने के लिए NSAttributedString
का उपयोग कर सकते हैं। यदि आप आईओएस के पुराने संस्करण को लक्षित कर रहे हैं, तो शायद आप OHAttributedLabel
जैसे स्टाइल टेक्स्ट को आकर्षित करने के लिए इंटरनेट पर कुछ मुफ्त कोड देखना चाहेंगे।
यदि आप वास्तव में यूआरएल को स्पर्श-संवेदनशील बनाना चाहते हैं, तो आप लेबल में एक टैप जेस्चर पहचानकर्ता जोड़ सकते हैं और यह पता लगाने की कोशिश कर रहे हैं कि स्ट्रिंग का कौन सा हिस्सा टैप किया गया था (कुछ जटिल), या कुछ मुफ्त कोड देखें वह इंटरनेट जो आपके लिए पहले से ही करता है (जैसे OHAttributedLabel
), या किसी लेबल के बजाय तालिका दृश्य कक्ष में UITextView
डालें।
रॉब बताते हैं कि हम इसे कैसे प्राप्त कर सकते हैं।
लेकिन, हम एक रणनीति का उपयोग कर सकते हैं ताकि आईओएसएबल और यूआईबटन का उपयोग करके आईओएस संस्करण (संभवतः) के मुद्दे को बचाया जा सके।
हमें क्या करना है, या तो आईबी या स्टोरी बोर्ड से, यूआरएलएबल को यूआरएल के रूप में स्ट्रिंग के साथ रखें (इसे शीर्षक के रूप में उपयोग करें), कहें;
"www.myURL.com"
अब, बस यह ऊपर, एक UIButton (कस्टम प्रकार के साथ बटन) जगह, और बस का उपयोग करें "______" (रेखांकन) और अपने UILabel ओवरलैप और यह भी रूप में इस बटन सेट 'अंडरलाइन' आपके लेबल के नीचे होना चाहिए।
अब, यूआरएल के क्लिक पर आपको जितनी भी आवश्यकता हो, बटन की कार्रवाई में करें और यहां भी आप पाठ रंग, आदि, गुणों को बदल सकते हैं; URL भी लोड करें और UIWebView पर नेविगेट करें।
मेरा [यहां जवाब] (http://stackoverflow.com/a/29352519/168594) में उदाहरण कोड है जो आपको दिखाता है कि UITapGestureRecognizer के साथ आपके UILabel टैप-सक्षम की श्रेणियां कैसे बनाएं, जैसा कि @RobMayoff ने सुझाव दिया था। – zekel