我在UIView中有一个TextView和一个Tableview。我试图检测滚动是textview滚动还是tableview滚动?有任何代码吗?感谢您提前提供任何帮助:)
答案 0 :(得分:1)
UITextView
& UITableView
都是使用UIScrollView
您可以识别哪个控件滚动&实施UIScrollViewDelegate
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {
if ([scrollview isKindeOfClass: [UITextView Class]]) {
//UITextView
} else if ([scrollview isKindeOfClass: [UITableView Class]]) {
// UITableView
}
// Identifying direction
CGPoint point = [scrollView.panGestureRecognizer translationInView:scrollView.superview];
if (point.y > 0) {
// Dragging down
} else {
// Dragging up
}
}
答案 1 :(得分:1)
使用func scrollViewDidScroll(_ scrollView: UIScrollView)
委托并检查。设置UITextViewDelegate
和UITableViewDelegate
并签入方法
示例:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if scrollView == tableView {
}
if scrollView == textView {
}
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView == tableView {
}
if scrollView == textView {
}
}
答案 2 :(得分:0)
UIScrollView
和UITableView
中已嵌入UITextView
Reference
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;
答案 3 :(得分:0)
UITableViewDelegate符合UIScrollViewDelegate,因此您只需要实现这些方法 - scrollViewWillBeginDragging和-scrollViewDidScroll
- (void) scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView == myTableView){
// Your logic here.....
}
if (scrollView == textView)
{ // Your logic here..
}
}
答案 4 :(得分:0)
UITableView& UITextView是UIScrollview的子类。滚动 UITableView 时,您将获得所有 UIScrollView 。您可以在此处获得UIScrollView method的列表。
答案 5 :(得分:0)
UITextView
和UITableView
都是UIScrollView
的子类,因此它们都会触发UIScrollViewDelegate
方法。
假设__scrollView
和__textView
分别是UIScrollView
和UITextView
,
覆盖UIScrollViewDelegate
方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if ( scrollView == __scrollView ) {
// UIScrollView is scrolled
}else if ( scrollView == __textView ){
// UITextView is scrolled
}
}