9

私のuitableviewcontrollerにUIRefreshControlを設定していますが、navbarとuitableviewの上部の間に大きなギャップがあります。コントローラーが起動時にナビゲーションバーの下に表示されるため、「スクロールビューのインセットの調整」で再生することは役に立ちません。私は「トップバーの下」を無効にすることができましたが、スクロールするときにその能力が必要です。デバッガを覗き込むと、tableView.contentInsetが82ポイントでオフセットされていることに気付きました。これは、新しいios7バーの動作に関する20/64人のオフセットの普及とは異なります。何が起きてる?iOS 7のUIRefreshControlによるUITableViewControllerオフセットの修正

答えて

24

さらに多くを突きつけながら解決策を見つけました。それは誰かを数時間節約して願っています!

viewDidLoad:の後に私のUIRefreshControlをインスタンス化する必要がありました。または、少なくともその後まで(たとえば、IBでテーブルをリフレッシュできるように)コード内にattributedTitleを設定しないでください。 viewDidLoad内の文字列を設定すると、iOSのコントロール+ tableviewのレイアウトが崩れますが、形状が設定されると、viewWillAppear:以降で問題ありません。そして私は82ポイントがUIRefreshControlの高さだと思います。 IBでリフレッシュタイトルを設定すると、この問題は回避されました。ただし、IBでリフレッシュできるようにする必要がなくなったため、コードで実行していました。

+0

投稿していただきありがとうございます!私は本当にviewDidLoadの私のリフレッシュコントロールの私のattributedTitleを設定していたし、それがあまりにも速く(VWAの前に)行われた場合、レイアウトを破るだろう。 – adamweeks

+1

うわー、私はこの愚かなuirefreshcontrolと何時間も苦労してきました。ありがとう! –

+4

viewWillAppearで私のために働いていませんでしたが、viewDidAppearで働いていました –

関連する問題