UIRefreshControl in Landscape
I've got a UIRefreshControl at the top of my table.
The screen is in landscape.
The trouble is, I can't pull down far enough in order to trigger the refresh, because there is too little space in Landscape. Is there a way to adjust the amount you have to pull down?
The way you can adjust how far you have to pull is by altering the height of the UITableView
. UIRefreshControl
adjusts its maximum distortion height proportionally to the height of the tableView. If you can't change the height of the tableView, then please file a bug with the details of your situation and it will hopefully be addressed in a future iOS release.
Also, have you tried pulling down more quickly?
Remember that your tableview is just a subclass of UIScrollView. In your controller, implement scrollViewDidScroll
method and call -beginRefreshing
on your UIRefreshControl like below.
But the animation of the UIRefreshControl while going to refreshing state wont be as smooth as you would expect. But it works.
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (scrollView.contentOffset.y < -98 && ![self.refresher isRefreshing]) {
[self.refresher beginRefreshing];
//do all the work
[self.refresher endRefreshing];
}
}
如果您contentsize
具有高度不够拉下来,你可能需要使用,以使其垂直self.collectionView.alwaysBounceVertical = YES;
下一篇: UIRefreshControl在景观