swift实现微博@及#话题#功能

swift实现微博@及#话题#功能,第1张

概述在微博信息流中点击@某人然后跳转到某人的主页,以及点击话题跳到相关话题页,类似于HTML中的文本链接,在iOS中实现方法也差不多,也是往文本中添加文本链接的方式,具体看以下代码 let text:String = "#证人杨幂发福利# 电影《我是证人》#福利#即将在2015-10-25上映咯!转发@电影我是证人 地址(http://www.baidu.com)@杨幂 哟~" let




在微博信息流中点击@某人然后跳转到某人的主页,以及点击话题跳到相关话题页,类似于HTML中的文本链接,在iOS中实现方法也差不多,也是往文本中添加文本链接的方式,具体看以下代码


let text:String = "#证人杨幂发福利# 电影《我是证人》#福利#即将在2015-10-25上映咯!转发@电影我是证人 地址(http://www.baIDu.com)@杨幂 哟~"        let attributedString:NSMutableAttributedString = NSMutableAttributedString(string:text)        let textRange = NSRange(location: 0,length: text.length)                //规则检查        var ranges:[NSRange] = []        //话题(使用正则匹配出#话题#所在位置)        var reg = try? NSRegularExpression(pattern: "#.+?#",options: [])        reg?.enumerateMatchesInString(text,options: [],range: textRange,usingBlock: {result,flags,ptr in            if let result = result            {                ranges.append(result.range)            }        })        //然后给话题所在的文本添加链接        for range in ranges        {            let subject = (text as Nsstring).substringWithRange(range)            attributedString.addAttribute(NSlinkAttributename,value: "yourapp://subject?text=\(subject.URLEncoded)",range: range)        }                //@某人        ranges.removeAll()        reg = try? NSRegularExpression(pattern: "@[^\\s]+",ptr in            if let result = result            {                ranges.append(result.range)            }        })        for range in ranges        {            let subject = (text as Nsstring).substringWithRange(range)            attributedString.addAttribute(NSlinkAttributename,value: "yourapp://mind?name=\(subject.URLEncoded)",range: range)        }                //文本框        let textVIEw:UITextVIEw = UITextVIEw()        textVIEw.editable = false        textVIEw.frame = CGRectMake(20,10,vIEw.frame.wIDth - 20,150)        textVIEw.attributedText = attributedString        textVIEw.linkTextAttributes = [NSForegroundcolorAttributename:UIcolor.bluecolor()]                vIEw.addSubvIEw(textVIEw)@H_301_16@ 

//在此统一处理

func application(application: UIApplication,openURL url: NSURL,sourceApplication: String?,annotation: AnyObject) -> Bool    {        //在此处理相关链接        //openURL:yourapp://mind?name=%40%E6%9D%A8%E5%B9%82,scheme:yourapp,query:Optional("name=%40%E6%9D%A8%E5%B9%82")        print("openURL:\(url),scheme:\(url.scheme),query:\(url.query)")        return true    }@H_301_16@          总结       

以上是内存溢出为你收集整理的swift实现微博@及#话题#功能全部内容,希望文章能够帮你解决swift实现微博@及#话题#功能所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1083143.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存