- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在从具有大型样式 UINavigationItem
的 View 转换为具有大型样式 UINavigationItem
和 UISearchController
的 View 。我自定义了 UINavigationBar
的背景颜色。
由于某种原因,UINavigationBar
和 UISearchController
之间有一个 1px 的线或空格。我可以从 NavigationBar
看出它,因为如果我滚动以使搜索栏停留在顶部,该行就会消失。我只是不确定是什么产生了这条线。除了设置 barTintColor
和 tintColor
之外,我没有使用阴影或任何花哨的东西。如果我不使用大样式标题,我会看到这条线,但只有在 View 之间转换时才会看到。这就像在转换 UISearchController
时并没有正确地粘在 UINavigationBar
上。
如果您能帮助我们找出这条线的来源,我们将不胜感激。
更新:经过进一步调查,这似乎仅在 navigationItem.hidesSearchBarWhenScrolling
设置为 false
时才会发生。如果它最初是隐藏的,那么前一个 View 的动画是平滑的,并且显示条形图也是平滑的。
最佳答案
测试您描述的导航项和搜索栏设置,我只能在过渡动画期间重现 1px/point 线。
解决方法:这一行实际上是背景布局 View (forLastBaselineLayout
),由UINavigationBar
使用,最终可见由于 UISearchBar
的错误框架。设置其背景以匹配您的导航栏颜色以将其隐藏在后站点
// MARK: UINavigationControllerDelegate
public func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
viewController.navigationController?.navigationBar
.forLastBaselineLayout.backgroundColor = .red // TODO:
}
确保将实现 UINavigationControllerDelegate
的对象设置为 navigationController.delegate
以接收上述委托(delegate)调用。
此外(不是问题的一部分): UISearchBar
在 Controller 之间转换(推送和弹出)时似乎表现得很奇怪,尤其是当一个 Controller 具有/显示 searchBar
但不是另一个。 解决方法,我发现暂时隐藏显示 Controller 的搜索栏在视觉上更令人愉悦。这是我使用的代码:
public func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
if let sender = navigationStack.popLast() {
prepareSearchBarForTransition(from: sender)
}
navigationStack = navigationController.children
}
/// Set only from `navigationController: willShow`
private var navigationStack: [UIViewController] = []
func prepareSearchBarForTransition(from sender: UIViewController) {
if #available(iOS 11.0, *) {
let searchController = sender.navigationItem.searchController
sender.navigationItem.searchController = nil
weak var weakSender = sender
let navigationTransitionDuration: TimeInterval = 0.33
DispatchQueue.main.asyncAfter(deadline: .now() + navigationTransitionDuration) {
/// Reset the search bar.
weakSender?.navigationItem.searchController = searchController
}
} else {
// TODO: Check if the above workaround is neccessary for < iOS 11
}
}
关于ios - 删除大标题 UINavigationBar 中 UISearchController 顶部的 1px 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52346812/
我正在上 codeschool,他们告诉我: SORRY, TRY AGAIN transform must be defined last, after the browser prefix sty
我正在使用 SCSS 更改 bootstrap 4 的样式以创建我自己的样式,但是当我编译 SCSS 时出现此错误: { "status": 1, "file": "H:/!WEBSITE/m
在将作为 photoshop 文件给出的网页设计转换为 html+css 时,我对字体大小感到困惑。如下图所示,photoshop 中的 30 px 不等于其他 Windows 程序(Mac 或其他程
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 6 年前。 Improve
在我当前的代码中,ul 一直放在页面底部,超过了我的预定义框。 我尝试使用 position:fixed 和 bottom:0 .box { width: 900px; height:
我在 photoshop 中有一个模型,其字体为 60px。我将浏览器中的字体设置为相同的 60px 大小,但浏览器中的字体较小。知道这是为什么吗? 最佳答案 您在 Photoshop 中为您的文本启
我想知道是否有可能仅使用 CSS 获取页面的浏览器/视口(viewport)像素尺寸并将其显示在页面上(最好使用“内容”样式)。我正在为我的一个元素(完全用 CSS 构建)这样做。我知道使用 JS 很
我正在尝试将可变数量的像素计算为与密度无关的像素,反之亦然。 这个公式 (px to dp): dp = (int)(px/(displayMetrics.densityDpi/160)); 不适用于
我在一个带有 1px 边框的容器中有两个 div。我希望每个 div 按宽度正好占据容器的一半,所以我尝试使用 CSS3 的 calc函数从总宽度 (50%) 中减去预定的像素值(2px,div 的每
我正在使用 em 但在嵌套元素中遇到问题所以我决定使用 % 作为 yui建议。 To change the size of a font, always use percentages as the
我有一个元素容器。我想为容纳元素的容器设置最大高度,但如果元素没有填满整个尺寸,则让容器降低其高度。是否可以通过 CSS 实现? 最佳答案 也许使用height: auto。请显示您的 CSS 和 H
我刚刚开始使用 sprites 来减少 HTTP 请求,我在将处理悬停动画的旧脚本转换到新系统时遇到了一些问题。我真的不想为每个按钮设置一个单独的功能,因为这很痛苦,尤其是按钮的数量,即使复制和粘贴也
我正在从头开始创建一个 HTML 页面,并在其中动态放置值,然后将其显示在 WebView 中。 我正在尝试在 WebView(作为 HTML)中复制 ActionBar(出现在应用程序的其他 Act
我希望“蓝色”容器始终为 70 像素高,而之前的“绿色”div 在使用 javascript 调整 div 大小时始终最大化可用高度。 我已经尝试了一段时间,但没有找到合适的解决方案。我们将不胜感激。
我在 Quora 上阅读了以下内容: By setting the font-size of the (which by default its 16px) to 62.5%, setting em
我在关于 http://developer.android.com/guide/practices/screens_support.html 的一些不幸的歧义中迷失了方向,而且我找不到澄清问题的 st
有什么区别: border-right: 1px dotted #CCCCCC; 和: border-right: 1 px dotted #CCCCCC; 有没有? 第二个不正确吗?你需要在 px
我想创建(某种)全 Angular slider ,其中我有一个带有多个子部分的柔性包装器。每个部分100vw排成一排。现在我想每次单击按钮时都将 Flex-wrapper 的 margin-left
在这样的代码中: var a = e.clientX; var b = document.getElementById('someElement').style.left; var z = a - b
我有一个非常简单的表单,其中包含一个 和一个 . 这是 HTML: body { font-family: sans-serif; } input { border: none; out
我是一名优秀的程序员,十分优秀!