Я хочу создать в своем приложении интерактивную метку, ведущую на веб-страницу Safari. Я также хочу, чтобы пользователь мог звонить по номерам, только нажимая на них?
Спасибо за советы
iphone
objective-c
url
uilabel
обкрадывать
источник
источник
Ответы:
Вы можете использовать
UITextView
и выбрать «Обнаружение ссылок, номеров телефонов и других вещей в инспекторе».источник
Используйте
UITextView
вместо,UILabel
и у него есть свойство преобразовывать ваш текст в гиперссылку.Objective-C:
Swift:
Это автоматически обнаружит ссылки.
Подробности смотрите в документации .
источник
https://github.com/mattt/TTTAttributedLabel
Это определенно то, что вам нужно. Вы также можете применять атрибуты для своей метки, например подчеркивание, и применять к нему разные цвета. Просто проверьте инструкции для интерактивных URL-адресов.
В основном вы делаете что-то вроде следующего:
источник
Вы можете создать собственный UIButton и setText, что хотите, и добавить метод с этим.
источник
Если вы хотите, чтобы это обрабатывал UILabel, а не UITextView, вы можете создать подкласс UILabel, например:
Этот класс был создан путем повторного использования кода из этого ответа . Чтобы сделать строки с атрибутами, ознакомьтесь с этим ответом . И здесь вы можете узнать, как сделать URL-адреса телефонов.
источник
Использовать это мне так понравилось, поскольку создает ссылку синим цветом только на конкретный текст, а не на весь текст ярлыка: FRHyperLabel
Делать:
Загрузка из приведенных выше ссылки и копии
FRHyperLabel.h
,FRHyperLabel.m
к вашему проекту.Перетаскивании
UILabel
в вашемStoryboard
и определить пользовательское имя класса , чтобыFRHyperLabel
в идентификации инспектора , как показано на рисунке.@property (weak, nonatomic) IBOutlet FRHyperLabel *label;
`NSString * string = @" Загружая, я соглашаюсь с Условиями использования "; NSDictionary * attributes = @ {NSFontAttributeName: [предпочтительный стиль UIFontFontForTextStyle: UIFontTextStyleHeadline]};
источник
Используйте UITextView вместо UILabel, и у него есть свойство преобразовывать ваш текст в гиперссылку.
Код Swift:
источник
источник
Почему бы просто не использовать NSMutableAttributedString ?
Вы можете найти более подробную информацию здесь
источник
Swift 4.2, версия Xcode 9.3
источник
Возможное решение Swift 4.0 с использованием UIButton
источник