相关疑难解决方法(0)

使用UIRefreshControl在TableView中移位的标题

我的UIRefreshController正在做一些奇怪的事情.当我下拉刷新时,tableView标头被移位.

如果我下拉它看起来不错,但如果我向下滚动表时,复习仍在工作,头被刷新控制的高度,而UITableCells是罚款和滚动头之后偏移.

http://oi49.tinypic.com/2a8hqti.jpg

http://oi46.tinypic.com/acssrb.jpg

我想避免创建一个tableViewController,所以我在viewDidLoad中执行以下操作:

_refreshControl = [[UIRefreshControl alloc] init];
[_refreshControl addTarget:self action:@selector(refresh) forControlEvents:UIControlEventValueChanged];
[_tableView addSubview:_refreshControl];
Run Code Online (Sandbox Code Playgroud)

我在不同的视图控制器中有很多表需要这个功能.有什么方法可以避免为每个人制作一个UITableViewController吗?

万分感谢!

objective-c uitableview ios uirefreshcontrol

28
推荐指数
2
解决办法
9308
查看次数

在UITabBarController中切换选项卡后,UIRefreshControl卡住了

我有一个UITableViewController作为UINavigationController中的根视图控制器,UINavigationController又是UITabBarController中的一个视图控制器.所有人都在故事板中.

我也在Storyboard中为我的表配置了UIRefreshControl,通常看起来应该在拉动时:

正常的UIRefreshControl

但是,如果我在其他标签之间切换一次或两次,它看起来像这样:

越野车UIRefreshControl

它不是旋转或任何东西,只是卡住"满",它一直保持这种状态,直到我完全拉动并触发刷新.

任何想法或建议都会欣赏.

iphone refresh objective-c ios uirefreshcontrol

26
推荐指数
3
解决办法
7276
查看次数

在Swift中拉到刷新而不是重新加载UITableView

我已经成功JSON填充UITableView,但JSON经常更新,所以我需要刷新的能力.我按照THIS TUTORIAL实现了拉动刷新控制.在视觉上,它似乎一切正常,但当我调用tableView.reloadData()表不重新加载.但是,如果我离开ViewController并返回,表格会更新.为什么会tableView.reloadData()工作,viewDidAppearviewWillAppear而不是在我的自定义refresh()功能?

MainVC.swift文件

    class MainVC: UIViewController, UITableViewDelegate, UITableViewDataSource {

        @IBOutlet var tableView: UITableView!
        var dataArray: NSArray = NSArray()

        @IBOutlet var Controller: UISegmentedControl!

        var refreshControl:UIRefreshControl!

        func refresh(sender:AnyObject)
        {
            refreshBegin("Refresh",
                refreshEnd: {(x:Int) -> () in
                    self.tableView .reloadData()
                    println("Table Reloaded")
                    self.refreshControl.endRefreshing()
            })
        }

        func refreshBegin(newtext:String, refreshEnd:(Int) -> ()) {
            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
                println("refreshing")
                sleep(2)

                dispatch_async(dispatch_get_main_queue()) {
                    refreshEnd(0)
                }
            }
        }

        override func viewWillAppear(animated: …
Run Code Online (Sandbox Code Playgroud)

json uitableview ios pull-to-refresh swift

3
推荐指数
1
解决办法
9206
查看次数

在NavBar上使用Back之后,RefreshControl会在TableView的第一个单元格中造成bug

我有一个TableView嵌入在NavigationController中(并且它嵌入在TabBar控制器中)。每个单元格中都有一个用户名按钮,可以与用户的个人资料建立联系。

在此处输入图片说明

但是,当我在个人资料页面的导航栏上单击“返回”,并直接返回到表格视图后,似乎我在窃听一些东西。

在此处输入图片说明

在此处输入图片说明

如果我再次下拉,它会刷新,但是这次,第一行的用户名变得不可单击,而其他行则按预期工作。

请注意,在使用“后退”按钮后,我在tableView中进行了调用self.theRefreshControl = UIRefreshControl()viewDidLoad但不确定是否正在调用它。

请注意,我使用进行搜寻prepareForSegue


总结

  • 如果我转到通知页面并尝试单击用户名,则单击用户名按钮并进行搜索

  • 如果我转到通知,然后单击刷新,则第一行中的用户名按钮不起作用

  • 如果我转到通知并且不进行任何刷新,则用户名按钮会自动切换并返回(因此不会出错)。

  • 如果我转到通知并拉动刷新,则refreshControl图标会出现并消失,但是现在,它不允许我单击第一行的用户名按钮。

  • 如果我确实刷新了通知,则不允许我单击第一行中的用户名。如果我单击第二个单元格中的第二个用户名,它将搜索到用户的个人资料,但是当我单击“后退”按钮时,它将出现如下错误:

在此处输入图片说明

ViewDidLoad()中的代码:

 override func viewDidLoad() {
  super.viewDidLoad()

  self.theRefreshControl = UIRefreshControl()
  self.theRefreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
  self.theRefreshControl.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
  self.tableView.addSubview(theRefreshControl)
}

func refresh(sender: AnyObject) {
   if isFirstLoad == false {
      currentPage = 1
       getStuff()
    }

   self.theRefreshControl.endRefreshing()
}
Run Code Online (Sandbox Code Playgroud)

我也尝试self.tableView.backgroundView = refreshControl在上方和下方添加self.tableView.addSubview(theRefreshControl);并且还试图更换self.tableView.addSubview(theRefreshControl)self.tableView.backgroundView = refreshControl可惜没有运气

uitableview ios pull-to-refresh swift

2
推荐指数
1
解决办法
1073
查看次数