Bha*_*rat 4 objective-c uitabbarcontroller ios pull-to-refresh ios7
我想实现拉来刷新我的UITableViewController使用UIRefreshControl.这是我到目前为止尝试过的.
- (void)viewDidLoad
{
.....
////********* Pull to refresh ************/
UIRefreshControl *refresh = [[UIRefreshControl alloc] init];
refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"Pull to Refresh"];
refresh.tintColor = [UIColor magentaColor];
// [self.tableView addSubview:refresh];
// [self.refreshControl setEnabled:YES];
[refresh addTarget:self action:@selector(pullToRefresh:) forControlEvents:UIControlEventValueChanged];
self.refreshControl = refresh;
}
-(void)pullToRefresh:(UIRefreshControl *)refresh {
[refresh beginRefreshing];
refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"Refreshing.."];
[self loadRecentActivities];
}
Run Code Online (Sandbox Code Playgroud)
但是当我拉出tableview时,活动指示器和标题都不可见,但是pullToRefresh会调用并刷新表.我的应用程序支持iOS7.0 +.我错过了什么?任何帮助,将不胜感激?
编辑:我试过 [self.refreshControl setEnabled:YES];和 [self.refreshControl setEnabled:YES];编辑过的代码一样,但仍然没有运气.当我把它拉到刷新时,这就是我的tableview的样子 - 
最终解决方案:对于我正在使用的表视图背景
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background.png"]];
self.tableView.backgroundView = imageView;
Run Code Online (Sandbox Code Playgroud)
刷新指示符和标题隐藏在self.tableView.backgroundView替代使用后面
[self.tableView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]]];
Run Code Online (Sandbox Code Playgroud)
它解决了我的问题.还有很多感谢Balram Tiwari如果你还有问题,请看他的回答.
实际上你在tableView中有刷新控制器,但它在navigationBar后面.(听起来不一样,对,)这是捕获,
在iOS7中使用代码时,默认情况下UIViewController采用(edgesForExtendedLayout)整个屏幕.这意味着你的(0,0)将从导航栏下方的左上角开始.
所以你的tableView实际上是从那里开始的.因此,要摆脱它,你只需指定edgesForExtendedLayout你viewController在你的viewDidLoad方法.
if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
self.edgesForExtendedLayout = UIRectEdgeNone;
Run Code Online (Sandbox Code Playgroud)
之后它应该是可见的.


希望有所帮助.
| 归档时间: |
|
| 查看次数: |
6325 次 |
| 最近记录: |