• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - UITextContainerView 隐藏 UITextView 的可点击链接

[复制链接]
菜鸟教程小白 发表于 2022-12-11 18:54:07 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我使用 NSMutableAttributeString 在 UITextView 中创建了一个可点击的链接。 它所改变的只是文本被突出显示

The link is on the telephone number

DEBUGGER 正如我们所看到的:漂浮在我的 UITextView 上的是一个 UIContainerView(我真的不知道是不是因为这个......我正在尝试)

这是我的 UIView 代码: 类信息框:UIView {

let Heading: UITextView = {
    let textView = UITextView(frame: CGRect(x: 15, y: 0, width: 200, height: 35))
    textView.font = UIFont.systemFont(ofSize: 20)
    textView.textColor = UIColor.white
    textView.isScrollEnabled = false
    textView.backgroundColor = UIColor.clear
    textView.isEditable = false
    textView.isSelectable = true
    return textView
}()

let TextContent: UITextView = {
    let textView = UITextView(frame: CGRect(x: 15, y: 27, width: UIScreen.main.bounds.width, height: 30))
    textView.font = UIFont.systemFont(ofSize: 17)
    textView.textColor = UIColor.white
    textView.isScrollEnabled = false
    textView.backgroundColor = UIColor.clear
    textView.isEditable = false
    textView.isSelectable = true
    return textView
}()}

NSAttributedString 代码:

        func transformText(text: String, underlined: Bool, linkURL: String) -> NSAttributedString {
    let textRange = NSMakeRange(0, text.characters.count)
    let attributedText = NSMutableAttributedString(string: text)
    if underlined{
        attributedText.addAttribute(NSUnderlineStyleAttributeName , value: NSUnderlineStyle.styleSingle.rawValue, range: textRange)
        attributedText.addAttribute(NSUnderlineColorAttributeName , value: UIColor.lightGray, range: textRange)
    }
    attributedText.addAttribute(NSFontAttributeName , value: UIFont(name: "Helvetica-Light", size: 17)!, range: textRange)
    attributedText.addAttribute(NSForegroundColorAttributeName , value: UIColor.lightGray, range: textRange)
    if(linkURL != "")
    {
        let attrib = [NSLinkAttributeName: NSURL(string: linkURL)!]

        attributedText.addAttributes(attrib, range: textRange)
    }
    return attributedText
}

这就是它的名称:

    self.TelBox.TextContent.attributedText = transformText(text: self.TelBox.TextContent.text, underlined: true, linkURL: "https://www.google.fr")

第二个问题:是否可以在 UITextView 中为电话号码创建可点击链接,以便在点击时调用该号码?用 UIButton 做的。



Best Answer-推荐答案


我不确定您的 UIContainerView 有什么问题,据我所知没有任何问题。

这是使链接调用数字的方法:

func transformText(text: String, underlined: Bool, phoneNumber: String) -> NSAttributedString {
        let textRange = NSMakeRange(0, text.characters.count)
        let attributedText = NSMutableAttributedString(string: text)
        if underlined{
            attributedText.addAttribute(NSAttributedStringKey.underlineStyle , value: NSUnderlineStyle.styleSingle.rawValue, range: textRange)
            attributedText.addAttribute(NSAttributedStringKey.underlineColor , value: UIColor.lightGray, range: textRange)
        }
        attributedText.addAttribute(NSAttributedStringKey.font , value: UIFont(name: "Helvetica-Light", size: 17)!, range: textRange)
        attributedText.addAttribute(NSAttributedStringKey.foregroundColor , value: UIColor.lightGray, range: textRange)
        if(phoneNumber != "")
        {
            let attrib = [
                NSAttributedStringKey.link: URL(string: "tel://" + phoneNumber.replacingOccurrences(of: " ", with: ""))]
            attributedText.addAttributes(attrib, range: textRange)
        }
        return attributedText
    }

你可以这样使用它:TextContent.attributedText = transformText(text: "12345", underlined: true, phoneNumber: "12345")

关于ios - UITextContainerView 隐藏 UITextView 的可点击链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46565704/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap