Ala*_*din 43 iphone xcode objective-c uitableview ios
我想检测是否滚动了mytable视图,我尝试了所有类似这样的触摸事件:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesBegan:touches withEvent:event];
//my code
}
Run Code Online (Sandbox Code Playgroud)
但似乎所有触摸事件都不响应滚动,但只有当单元格被触摸,移动等时它们才会响应
有没有办法检测UITableView的滚动事件?
fab*_*789 120
如果您实现UITableViewDelegate
协议,您还可以实现以下UIScrollViewDelegate
方法之一:
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
Run Code Online (Sandbox Code Playgroud)
要么
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
Run Code Online (Sandbox Code Playgroud)
例如,如果您有一个名为的属性tableView
:
// ... setting up the table view here ...
self.tableView.delegate = self;
// ...
// Somewhere in your implementation file:
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
NSLog(@"Will begin dragging");
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@"Did Scroll");
}
Run Code Online (Sandbox Code Playgroud)
这是因为UITableViewDelegate
符合UIScrollViewDelegate
,如文档或头文件中所示.
如果Solidus要求您有多个表视图,则可以将回调中的scrollview转换为tableview,因为UITableView是从UIScrollView派生的,然后与tableviews进行比较以查找源表视图.
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
UITableView* fromTableView = (UITableView*) scrollView;
UITableView* targetTableView = nil;
if (fromTableView == self.leftTable) {
targetTableView = self.leftTable;
} else {
targetTableView = self.rightTable;
}
...
}
Run Code Online (Sandbox Code Playgroud)
这些是UITableViewDelegate
Swift 3 中用于检测何时UITableView
将滚动或确实滚动的方法:
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
57946 次 |
最近记录: |