相关疑难解决方法(0)

如何在Swift中使用pull刷新?

我正在使用swift构建一个RSS阅读器,需要实现pull to reload功能.

这是我试图这样做的方式.

class FirstViewController: UIViewController,
    UITableViewDelegate, UITableViewDataSource {

   @IBOutlet var refresh: UIScreenEdgePanGestureRecognizer
   @IBOutlet var newsCollect: UITableView

   var activityIndicator:UIActivityIndicatorView? = nil

   override func viewDidLoad() {
       super.viewDidLoad()
       self.newsCollect.scrollEnabled = true
      // Do any additional setup after loading the view, typically from a nib.

      if nCollect.news.count <= 2{
          self.collectNews()
       }
      else{
          self.removeActivityIndicator()
       }
      view.addGestureRecognizer(refresh)
   }



@IBAction func reload(sender: UIScreenEdgePanGestureRecognizer) {
    nCollect.news = News[]()
    return newsCollect.reloadData()
}
Run Code Online (Sandbox Code Playgroud)

我正进入(状态 :

属性'self.refresh'未在super.init调用中初始化

请帮助我理解手势识别器的行为.一个工作示例代码将是一个很好的帮助.

谢谢.

xcode ios uirefreshcontrol swift

214
推荐指数
8
解决办法
16万
查看次数

在使应用程序处于非活动状态后,UIRefreshControl停止旋转

我在UITableView中使用UIRefreshControl:

UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(refresh)
         forControlEvents:UIControlEventValueChanged]; 
self.refreshControl = refreshControl;
Run Code Online (Sandbox Code Playgroud)

使用刷新处理程序

-(void)refresh {
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        // (...some long running operation...)
        dispatch_async(dispatch_get_main_queue(), ^{
            [self.refreshControl endRefreshing];
        });
    });
}
Run Code Online (Sandbox Code Playgroud)

在长时间运行操作期间,我按"主页"按钮使应用程序无效.之后,我再次激活应用程序.旋转器冻结(停止旋转)并且无法将其返回到初始状态.

怎么解决?

cocoa-touch uitableview ios uirefreshcontrol

15
推荐指数
3
解决办法
7219
查看次数

使用UIViewControler和UITableView在UITabBarController中切换选项卡后UIRefreshControl卡住了

在此输入图像描述UIRefreshControl切换标签后我被卡住了,它只发生在第一个标签上.在TabBar里面我有两个带UIViewControler的标签,里面有UITableView.

我尝试过在这里建议的所有解决方案,但没有一个能为我工作.

以下是我正在做的事情.

- (void)viewDidLoad {
[super viewDidLoad];

data = [[NSMutableArray alloc] initWithArray:[[DataCache sharedCache] getData]];

[self addNavBar];
[self addDataTable];

//for refreshing the table data
UITableViewController *tableViewController = [[UITableViewController alloc] init];
tableViewController.tableView = dataTable;
refreshControl = [[UIRefreshControl alloc] init];
refreshControl.backgroundColor = [UIColor purpleColor];
refreshControl.tintColor = [UIColor whiteColor];
[refreshControl addTarget:self
                   action:@selector(refresh)
         forControlEvents:UIControlEventValueChanged];
[dataTable addSubview:refreshControl];
tableViewController.refreshControl = refreshControl;
}


- (void)refresh {
[self loadSentData];
data = [[NSMutableArray alloc] initWithArray:[[DataCache sharedCache] getSentData]];
[self performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
}

- (void)reloadData{
[dataTable reloadData]; …
Run Code Online (Sandbox Code Playgroud)

xcode ios uirefreshcontrol

5
推荐指数
1
解决办法
501
查看次数

标签 统计

ios ×3

uirefreshcontrol ×3

xcode ×2

cocoa-touch ×1

swift ×1

uitableview ×1