UILabel
jest zdolny tylko do wyświetlania ciągów zwykły tekst (w iOS 6 może teraz również wyświetlać NSAttributedString
s, ale to nie będzie działać w starszych wersjach iOS, więc najlepiej jest nie polegać na tym), więc nie będzie można tego zrobić z etykietą.
Możesz zobaczyć TTTAttributedLabel, aby wyświetlić przypisany tekst (aby dodać podkreślenia i inne formatowanie), ale nie będziesz mógł dodawać hiperłączy do tej klasy.
opcje masz na klikalnego segmencie łańcucha są zasadniczo:
Korzystając zwykły UILabel
i nakładki UIButton
nad częścią, którą chcesz być klikalny lub
Użyj TTTAttributedLabel
, aby uzyskać efekt podkreślenia, oraz UITapGestureRecognizer
do wykrywania i obsługi kliknięć (zauważ, że spowoduje to przechwycenie stuknięć na etykiecie całej, a nie tylko podkreślonej części).
Dla iOS 6:
UILabel *label = [[UILabel alloc] init];
NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:@"Tap here to read the latest Football News."];
[string addAttribute:NSUnderlineStyleAttributeName value:@(1) range:NSMakeRange(4, 4)];
label.attributedText = [string copy];
dla wcześniejszych wersjach systemu iOS, jak i iOS 6:
TTTAttributedLabel *label = [[TTTAttributedLabel alloc] init];
NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:@"Tap here to read the latest Football News."];
[string addAttribute:NSUnderlineStyleAttributeName value:@(1) range:NSMakeRange(4, 4)];
label.text = [string copy];
następnie dodać rozpoznającym gest i wdrożenia handleTap:
:
UITapGestureRecognizer *recogniser = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[label addGestureRecognizer:recogniser];
- (void)handleTap:(UITapGestureRecognizer *)recogniser {
// Handle the tap here
}
Użyj do tego łańcucha html. Pokaż w niestandardowej etykiecie obsługującej przypisane ciągi. – Divyu
może pokazać mi przykład ... – lakesh
Możesz wypróbować http://stackoverflow.com/questions/7385892/how-can-i-set-substring---string-as-bold-in-uilabel –