热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOS11大标题导航栏快照而不是平滑过渡

如何解决《iOS11大标题导航栏快照而不是平滑过渡》经验,为你挑选了2个好方法。

我正面临一个问题,当在UIViewController内部嵌入的UITableView上滚动时,大标题导航栏会突然崩溃.问题似乎只发生在屏幕上向上滚动时.当在屏幕上向下滚动时,标题会平滑过渡到再次变大,但反之则不然.

如果使用UITableViewController,则不会发生此问题.

这是在UITableViewController内滚动时的正常预期行为.

UIViewController内的iOS 11 UITableView(滚动时突然转换)

当在UIViewController中使用UITableView时,这是一个破碎的,突然的转换.

iOS 11 UITableViewController(正确转换)

以下是破坏实现的代码:

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 12
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Basic", for: indexPath)

        cell.textLabel?.text = "Title \(indexPath.row)"

        return cell
    }

}

导航栏优先选中大标题,导航项将大标题设置为自动.

上面两个示例的代码和配置完全相同,除了一个是UITableViewController与UIViewController内的UITableView.

我还观察到,如果UITableView的内容不超过视图的高度,则不会发生破坏的行为.但是,一旦有更多的细胞可以放在屏幕上,它就会破裂.

不知道我做错了什么或者这是iOS 11的错误吗?



1> 小智..:

我遇到了同样的问题 - 我在UINavigationController中嵌入了UIViewController,UIViewController具有对安全区域有前导,尾随,顶部,底部约束的tableview .整个tableview表现得很好/有趣.诀窍是将tableview的顶级约束更改为superview.

这里我记录了更改约束 tableview iOS 11的bug约束更改



2> Filippo..:

把这行代码放在包含UITableView的UIViewController上,对我来说效果很好.

迅速

extendedLayoutIncludesOpaqueBars = true;

Objective-C的

self.extendedLayoutIncludesOpaqueBars = YES;

将UITableView AutoLayout顶部空间设置为"Superview"而不是"Safe Area"


推荐阅读
author-avatar
寂寞已成伤兑
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有