30

backgroundView を設定する UITableViewController があります。このコントローラーには UIRefreshControl がインストールされています。問題は、背景ビューを設定すると、更新コントロールが表示されないことです。背景ビューを削除すると、更新コントロールが表示されます。

私は何か間違ったことをしていますか?

4

4 に答える 4

88

この動作の理由は、iOS 7 では、 がUITableViewbackgroundView上に描画されるためUIRefreshControlです。これが仕様によるものなのか問題なのかはわかりませんが、これを修正した回避策は次のとおりです。

   self.tableView.backgroundView.layer.zPosition -= 1;

このコードは、プロパティを設定する場所に配置されますUITableViewController refreshControl

于 2013-09-20T01:38:41.700 に答える
0

背景を背面に送信するか、更新コントロールを前面に送信してみてください。リフレッシュ コントロールは、インデックス 0 に座っている可能性が高いです。

于 2013-09-19T19:40:22.093 に答える
0

UITableViewController は、最初に配置したインデックスに関係なく、リロード中に UIRefreshControl をプッシュして 0 インデックス (「backgroundView」の背後) に戻すようです。これは私のために働いたものです(iOS 9):IBでリフレッシュを無効にします。コードで UIRefreshControl を作成し、backgroundView を設定した後に tableView に追加します。

    let someView = UIView()

    self.tableView.backgroundView = someView

    let refreshControl = UIRefreshControl()

    refreshControl.addTarget(self, action: #selector(MyTableViewController.refresh(_:)), forControlEvents: .ValueChanged)

    self.tableView.insertSubview(refreshControl, atIndex: 1)
于 2016-05-05T00:20:51.347 に答える