Ios 检查tableVIew是否位于tableViewFooter
我有一个带有多个表视图的滚动视图。我已经为每个tableView创建了一个tableViewFooter。我想执行一个操作,标签为102的特定tableView是否在底部/是否在tableViewFooter 下面是我要检查的特定tableView:Ios 检查tableVIew是否位于tableViewFooter,ios,uitableview,swift,Ios,Uitableview,Swift,我有一个带有多个表视图的滚动视图。我已经为每个tableView创建了一个tableViewFooter。我想执行一个操作,标签为102的特定tableView是否在底部/是否在tableViewFooter 下面是我要检查的特定tableView: recentTableView = UITableView() recentTableView.tag = 101 recentTableView.backgroundColor = UIColor.whiteColor()
recentTableView = UITableView()
recentTableView.tag = 101
recentTableView.backgroundColor = UIColor.whiteColor()
recentTableView.frame = CGRectMake(0, 0, wBounds, hBounds)
recentTableView.dataSource = self
recentTableView.delegate = self
recentTableView.separatorStyle = UITableViewCellSeparatorStyle.None
recentTableView.registerNib(UINib(nibName: "NewsCell", bundle: nil), forCellReuseIdentifier: "Cell")
recentTableView.backgroundColor = UIColor(rgba: "#f6f7f9")
recentTableView.showsHorizontalScrollIndicator = false
recentTableView.showsVerticalScrollIndicator = false
self.scrollView.addSubview(recentTableView)
self.scrollView.bringSubviewToFront(recentTableView)
recentFooter.frame = CGRectMake(0, 0, self.view.frame.size.width, 40)
recentFooter.backgroundColor = UIColor(rgba: "#f6f7f9")
var recentInd: UIActivityIndicatorView = UIActivityIndicatorView()
recentInd.frame = CGRectMake(self.view.frame.size.width/2-5, 20-5, 10.0, 10.0);
recentInd.transform = CGAffineTransformMakeScale(0.5, 0.5)
recentInd.activityIndicatorViewStyle =
UIActivityIndicatorViewStyle.WhiteLarge
recentInd.color = UIColor.blackColor()
recentFooter.addSubview(recentInd)
recentInd.startAnimating()
self.recentTableView.tableFooterView = self.recentFooter
您可以使用
tableView(\utableview:UITableView,willDisplayFooterView:UIView,forSection-section:Int)
方法UITableView委托
或者,您可以使用UITableView
上的UIScrollViewDelegate
方法,检查它是否到达scrollviewdidcoll
方法中的tableViewFooter
类似的东西应该适合你:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.tag == xxx) { //detect which tableView scrolled
CGFloat footerViewY = {calculate the Y position of your footer view}
//don't copy&paste the line below, you should change that line according to your needs
if (scrollView.contentOffset.y >= footerViewY) {
//do something
}
}
}
如果所有这些看起来太复杂,也许您可以尝试为您的页脚视图创建一个基本UIView类(即:XXBaseFooterView),并重写基类的drawRect方法,当调用drawRect时,这意味着它是可见的。但是我想这种方法非常粗糙而且不可靠。除了我的答案之外:我认为你应该在scrollViewDidScroll中计算tableFooterView的框架,并检查它是否到达那里。willDisplayFooterView方法适用于节页脚视图,但如果可能,您可以将其设置为节页脚视图。因此,在scrollViewDidScroll中,如果scrollView.tag==101,我可以执行
?它会触发tableView吗