Chcę utworzyć w mojej aplikacji etykietę, którą można kliknąć, prowadzącą do strony internetowej Safari. Chcę też, aby użytkownik mógł dzwonić pod numery tylko po ich kliknięciu?
Dzięki za rady
iphone
objective-c
url
uilabel
Obrabować
źródło
źródło
Odpowiedzi:
Możesz użyć
UITextView
ai wybrać Wykrywanie łączy, numerów telefonów i innych rzeczy w Inspektorze.źródło
Użyj
UITextView
zamiastUILabel
i ma właściwość do konwersji tekstu na hiperłącze.Cel C:
Szybki:
Spowoduje to automatyczne wykrycie linków.
Szczegółowe informacje można znaleźć w dokumentacji .
źródło
https://github.com/mattt/TTTAttributedLabel
Zdecydowanie tego potrzebujesz. Możesz także zastosować atrybuty do etykiety, takie jak podkreślenie, i zastosować do niej różne kolory. Po prostu sprawdź instrukcje dotyczące klikalnych adresów URL.
Zwykle robisz coś takiego:
źródło
Możesz stworzyć niestandardowy UIButton i setText, co chcesz, i dodać metodę z tym.
źródło
Jeśli chcesz, aby było to obsługiwane przez UILabel, a nie przez UITextView, możesz utworzyć podklasę UILabel, taką jak ta:
Ta klasa została utworzona przez ponowne użycie kodu z tej odpowiedzi . Aby utworzyć przypisane ciągi, sprawdź tę odpowiedź . I tutaj można znaleźć sposób, aby adresy URL telefonicznych.
źródło
Użyj tego, że tak mi się podobało, ponieważ tworzy link z niebieskim kolorem do określonego tekstu tylko nie na całym tekście etykiety: FRHyperLabel
Do zrobienia:
Pobierz z powyższego linku i kopii
FRHyperLabel.h
,FRHyperLabel.m
do projektu.Przeciągnij i upuść
UILabel
w swojejStoryboard
i zdefiniuj niestandardową nazwę klasyFRHyperLabel
w inspektorze identyfikacji, jak pokazano na obrazku.@property (weak, nonatomic) IBOutlet FRHyperLabel *label;
`NSString * string = @" Przesyłając, wyrażam zgodę na Warunki użytkowania "; NSDictionary * attributes = @ {NSFontAttributeName: [UIFont preferowanyFontForTextStyle: UIFontTextStyleHeadline]};
źródło
Użyj UITextView zamiast UILabel i ma właściwość do konwersji tekstu na hiperłącze
Kod SWIFT:
źródło
źródło
Dlaczego po prostu nie użyć NSMutableAttributedString ?
Więcej szczegółów znajdziesz tutaj
źródło
Wersja Swift 4.2, Xcode 9.3
źródło
Możliwe rozwiązanie Swift 4.0 za pomocą UIButton
źródło