Swift UIMenuController中的坑

Swift UIMenuController中的坑,第1张

概述由于自己喜欢看段子,最近做了一个看段子的APP。主要是因为 网易新闻 和 今日头条 分享段子的姿势恕我不能忍。 完成后的效果 2017-02-21 16_00_55.gif 你只需要点击你想要分享的段子 然后选择 QQ 或者 Wechat ,跳转后点击粘贴就好了  不用像 网易新闻 和 今日头条 分享一个链接,别人想看还得点进去。当然他们也可以复制,但是那姿势真的不优雅。 坑 在其中用到了 UIM

由于自己喜欢看段子,最近做了一个看段子的APP。主要是因为网易新闻今日头条分享段子的姿势恕我不能忍。

完成后的效果

2017-02-21 16_00_55.gif

你只需要点击你想要分享的段子 然后选择QQ或者Wechat,跳转后点击粘贴就好了
不用像网易新闻和今日头条分享一个链接,别人想看还得点进去。当然他们也可以复制,但是那姿势真的不优雅。 坑

在其中用到了UIMenuController这个控件。真的是一个巨坑,上网搜了各种帖子,都不能解决我所遇到的问题。最终这篇帖子帮了我。

1

UIMenuItem(Title: "QQ",action: #selector(mqq))看到这个结构,你很自然先到mqq这个方法接收传递的对象是UIMenuItem
但是他传递的是UIMenuController

2
overrIDe func tableVIEw(_ tableVIEw: UItableVIEw, dIDSelectRowAt indexPathIndexPath) {        tableVIEw.deselectRow(at indexPath animated @H_404_104@true)        if let cell =cellForRow// self.becomeFirstResponder() 这里先注释             qqItem  UIMenuItemTitle "QQ" action #selector(mqq)) wechatItem "wechat"#selector(wechat)) menuController UIMenuControllershared            menuControllermenuItems [qqItem wechatItem]            menuControllersetTargetRectcellframein cellsupervIEw!)setMenuVisible(            selectedText textLabel?.text        }    }

这段代码写在UItableVIEwController中,在不切换tab的情况下,点击cell后UIMenuController是能显示出来的,切换后就显示不出来了。必须加上注释的那句

3
longPresssenderUILongPressGestureRecognizer senderstate ==began selfbecomeFirstResponder() // 这句很重要shared             item1 "测试1"#selector(test1)) item2 "测试2"#selector(test2))item1 item2 supervIEw         在上面的基础上,把这段代码放在自定义cell中,UIMenuController又显示不出来了

必须加上这两个方法

// MARK: - 必须实现的两个方法

overrIDe var canBecomeFirstResponder: Bool {

return true

}

overrIDe func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {        if [#selector(test1), #selector(test2)].contains(action) {            return true        }        return false    }

从方法名你可以看出就是可以执行的方法,会显示出对应的UIMenuItem

如果你这样

canPerformActionSelector withSender senderAny?)->Boolreturntrue}
会显示出系统内置的和你定义的,如果你没有实现对应的Selector,会Crash

Screen Shot 2017-02-22 at 下午2.26.14.png

Screen Shot 2017-02-22 at 下午2.26.27.png

Screen Shot 2017-02-22 at 下午2.26.39.png

Screen Shot 2017-02-22 at 下午2.31.37.png

总结

以上是内存溢出为你收集整理的Swift UIMenuController中的坑全部内容,希望文章能够帮你解决Swift UIMenuController中的坑所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1061718.html

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

发表评论

登录后才能评论

评论列表(0条)

保存