【问题标题】:Fix UITableViewController offset due to UIRefreshControl in iOS 7修复由于 iOS 7 中的 UIRefreshControl 而导致的 UITableViewController 偏移
【发布时间】:2013-10-14 23:24:34
【问题描述】:

我在我的 uitableviewcontroller 中设置了一个 UIRefreshControl,但是导航栏和 uitableview 的顶部之间有很大的差距。使用“调整滚动视图插图”并没有帮助,因为控制器将在启动时放置在导航栏的下方。我可以禁用“顶部栏下”,但我希望在滚动时拥有这种能力。在调试器中四处寻找时,我注意到 tableView.contentInset 在不同时间偏移了 82 个点,这与人们谈论的关于新 ios7 bar 行为的通常的 20/64 pt 偏移量不同。这是怎么回事?

【问题讨论】:

    标签: uinavigationcontroller ios7 uitableview uirefreshcontrol


    【解决方案1】:

    在摸索中找到了解决方案;希望它可以为某人节省几个小时!

    我需要在viewDidLoad: 之后实例化我的 UIRefreshControl,或者避免在代码中设置它的attributedTitle,至少在那之后(例如,如果我在 IB 中启用了表格的刷新)。在 viewDidLoad 中设置字符串:会弄乱 iOS 的 control+tableview 布局,但在设置几何图形后,在 viewWillAppear: 或更高版本内就可以了。我认为 82 点是 UIRefreshControl 的高度。在 IB 中设置刷新标题也可以避免这个问题,除了我在代码中这样做是因为我不想一直在 IB 中对我的每个表启用刷新。

    【讨论】:

    • 感谢您发布此信息!我确实在 viewDidLoad 中设置了我的刷新控件的属性标题,如果它完成得太快(在 VWA 之前),它会破坏布局。
    • 哇,我已经为这个愚蠢的 uirefreshcontrol 苦苦挣扎了好几个小时。谢谢!
    • 在 viewWillAppear 中对我无效,但在 viewDidAppear 中有效
    • 嗨 :) 以防万一,请确保根据您使用的语言添加了 [self.refreshControl endRefreshing] 或 self.refreshControl.endRefreshing()。
    • 它避免了为我设置的属性标题,我什至可以在 init 中实例化 UIRefreshControl。
    猜你喜欢
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 2013-09-27
    相关资源
    最近更新 更多