YYText
YYText copied to clipboard
文本高亮,以及YYTextView选中某段文本与UIScrollView的冲突问题
作者您好! 我在使用YYText的过程中,遇到了如下两个小问题:
- 外界无法自由控制文本高亮和取消高亮,只能由用户点击触发高亮。因此有这方面需求时(比如点击某段特殊文本,需要高亮并且弹出popover,再次点击取消高亮),只能修改内部实现。
- YYTextView关闭editable,开启selectable,且父视图为UITableView/UIScrollView时,用户无法选中一段文本进行拷贝,同时长按触发的放大镜也无法正常工作。因为拖拽手势与父视图UIScrollView冲突,父视图滚动的同时,selectedRange无法正常控制,放大镜也会自动消失。 感谢!
- 是的,highlight 状态暴露出去的话,就非常难控制了,API 设计也会非常麻烦...
- 这个可以试试修改 scrollView 的 delaysContentTouches 和 canCancelContentTouches 属性。
@ibireme 你好,我也遇到了选择YYTextView的文字的时候与tableView的滑动冲突问题了。我是在cell里放了一个YYTextView。把tableView的delaysContentTouches和canCancelContentTouches设置为no之后,选择文字时候可选了,但是不选文字的时候YYTextView却不能滑动了,这有办法解决吗
@ibireme 你好,我也遇到了选择YYTextView的文字的时候与tableView的滑动冲突问题了。我是在cell里放了一个YYTextView。把tableView的delaysContentTouches和canCancelContentTouches设置为no之后,选择文字时候可选了,但是不选文字的时候YYTextView却不能滑动了,这有办法解决吗
你好,现在我也遇到这个问题,请问你之后是怎么处理的呢?
@ibireme 你好,我也遇到了选择YYTextView的文字的时候与tableView的滑动冲突问题了。我是在cell里放了一个YYTextView。把tableView的delaysContentTouches和canCancelContentTouches设置为no之后,选择文字时候可选了,但是不选文字的时候YYTextView却不能滑动了,这有办法解决吗
你好,现在我也遇到这个问题,请问你之后是怎么处理的呢?
以前的项目里遇到的,忘记了,我去看一下代码
@ibireme 你好,我也遇到了选择YYTextView的文字的时候与tableView的滑动冲突问题了。我是在cell里放了一个YYTextView。把tableView的delaysContentTouches和canCancelContentTouches设置为no之后,选择文字时候可选了,但是不选文字的时候YYTextView却不能滑动了,这有办法解决吗
你好,现在我也遇到这个问题,请问你之后是怎么处理的呢?
监听快捷菜单出来和隐藏的事件: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willShowEditMenu:) name:UIMenuControllerWillShowMenuNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didHideEditMenu:) name:UIMenuControllerDidHideMenuNotification object:nil];
然后这两个方法里这么写: -(void)willShowEditMenu:(id)sender { self.tableView.canCancelContentTouches = NO; self.tableView.delaysContentTouches = NO; }
-(void)didHideEditMenu:(NSNotification *)notifi { self.tableView.canCancelContentTouches = YES; self.tableView.delaysContentTouches = YES; }
@ibireme 你好,我也遇到了选择YYTextView的文字的时候与tableView的滑动冲突问题了。我是在cell里放了一个YYTextView。把tableView的delaysContentTouches和canCancelContentTouches设置为no之后,选择文字时候可选了,但是不选文字的时候YYTextView却不能滑动了,这有办法解决吗
你好,现在我也遇到这个问题,请问你之后是怎么处理的呢?
监听快捷菜单出来和隐藏的事件: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willShowEditMenu:) name:UIMenuControllerWillShowMenuNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didHideEditMenu:) name:UIMenuControllerDidHideMenuNotification object:nil];
然后这两个方法里这么写: -(void)willShowEditMenu:(id)sender { self.tableView.canCancelContentTouches = NO; self.tableView.delaysContentTouches = NO; }
-(void)didHideEditMenu:(NSNotification *)notifi { self.tableView.canCancelContentTouches = YES; self.tableView.delaysContentTouches = YES; }
好的,十分感谢🙏
@ibireme 你好,我也遇到了选择YYTextView的文字的时候与tableView的滑动冲突问题了。我是在cell里放了一个YYTextView。把tableView的delaysContentTouches和canCancelContentTouches设置为no之后,选择文字时候可选了,但是不选文字的时候YYTextView却不能滑动了,这有办法解决吗
你好,现在我也遇到这个问题,请问你之后是怎么处理的呢?
监听快捷菜单出来和隐藏的事件: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willShowEditMenu:) name:UIMenuControllerWillShowMenuNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didHideEditMenu:) name:UIMenuControllerDidHideMenuNotification object:nil];
然后这两个方法里这么写: -(void)willShowEditMenu:(id)sender { self.tableView.canCancelContentTouches = NO; self.tableView.delaysContentTouches = NO; }
-(void)didHideEditMenu:(NSNotification *)notifi { self.tableView.canCancelContentTouches = YES; self.tableView.delaysContentTouches = YES; }
稍微有点瑕疵:如果文本内容超过屏幕,不能继续往下拖动
#953 will fix it