2012-11-27 11 views
5

Tôi có một ô xem bảng và ô xem bảng được tùy chỉnh để có nhãn UILabel. Văn bản trong UILabel có URL. Có cách nào để phát hiện các url như UITextView sẽ cho phép phát hiện URL để tương tác của người dùng có thể tải các url không.phát hiện url trong UILabel

Trả lời

5

Nếu bạn chỉ muốn xác định URL, bạn có thể sử dụng NSDataDetector với loại kiểm tra NSTextCheckingTypeLink.

Nếu bạn muốn vẽ các URL khác nhau và đang nhắm mục tiêu iOS 6, bạn có thể sử dụng NSAttributedString để chuyển các URL màu xanh lam hoặc gạch chân chúng hoặc bất kỳ thứ gì. Nếu bạn đang nhắm mục tiêu một phiên bản iOS cũ hơn, có thể bạn sẽ muốn tìm một số mã miễn phí trên Internet để vẽ văn bản theo kiểu, như OHAttributedLabel.

Nếu bạn muốn thực sự làm cho URL cảm ứng nhạy cảm, bạn có thể thêm công cụ nhận dạng cử chỉ vào nhãn và cố gắng tìm ra phần nào của chuỗi được khai thác (hơi phức tạp) hoặc tìm một số mã miễn phí Internet đã làm điều đó cho bạn (như OHAttributedLabel), hoặc chỉ cần đặt một UITextView trong ô xem bảng thay vì nhãn.

+0

My [answer here] (http://stackoverflow.com/a/29352519/168594) có mã ví dụ cho bạn thấy cách tạo dải ô UILabel của bạn bằng UITapGestureRecognizer, như @RobMayoff đề xuất. – zekel

-4

vì Rob chỉ ra cách chúng ta có thể đạt được điều tương tự là tuyệt vời.

Tuy nhiên, chúng tôi có thể sử dụng nguyên tắc để có thể lưu với vấn đề về phiên bản ios (có thể), chỉ bằng cách sử dụng UILabel và UIButton.

Điều chúng ta cần làm là, hoặc từ IB hoặc bảng câu chuyện, chỉ cần đặt một UILabel có chuỗi là URL (sử dụng tên này làm tiêu đề), nói;

"www.myURL.com"

Bây giờ, chỉ ở trên nó, đặt một UIButton (nút với kiểu tùy chỉnh), và chỉ sử dụng "______" (dấu gạch dưới) và thiết lập nút này như chồng chéo UILabel của bạn và cũng 'gạch chân' phải nằm bên dưới nhãn của bạn.

Bây giờ, chỉ cần thực hiện thao tác nút bất cứ điều gì bạn cần khi bạn cần nhấp vào URL và ở đây bạn cũng có thể thay đổi các thuộc tính textColor, v.v. cũng tải URL và điều hướng đến UIWebView.