如何添加填充到搜索栏swift ios

Posted

技术标签:

【中文标题】如何添加填充到搜索栏swift ios【英文标题】:How to add padding to searchbar swift ios 【发布时间】:2018-03-01 05:04:59 【问题描述】:

我正在尝试向下移动我的搜索栏以与集合视图中其父单元格的底部对齐。

    if(searchBarCellId == widgets[indexPath.item])
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: searchBarCellId, for: indexPath) as! SearchBarCell
        cell.backgroundColor = UIColor.white

        cell.searchBar.backgroundImage = UIColor.white.image()
        cell.searchBar.tintColor = UIColor.gray
        let textFieldInsideSearchBar = cell.searchBar.value(forKey: "searchField") as? UITextField
        textFieldInsideSearchBar?.backgroundColor = UIColor.lightGray

        return cell
    

有没有办法以编程方式将搜索栏与单元格的底部单元格对齐? 自定义 xib 编辑器不允许我添加约束。

更新了完整的解决方案

使用编辑器添加约束

编辑代码:

  if(searchBarCellId == widgets[indexPath.item])
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: searchBarCellId, for: indexPath) as! SearchBarCell
        cell.backgroundColor = UIColor.white
        let frameWidth = UIScreen.main.bounds.width
        let frameHeight = UIScreen.main.bounds.width*0.2

        cell.searchBar.frame=CGRect(x: 0, y: frameHeight*0.47, width: frameWidth*0.7, height: frameHeight*0.5)
        cell.searchBar.backgroundImage = UIColor.white.image()
        cell.searchBar.tintColor = UIColor.gray
        let textFieldInsideSearchBar = cell.searchBar.value(forKey: "searchField") as? UITextField
        textFieldInsideSearchBar?.backgroundColor = UIColor.lightGray

        return cell
    

【问题讨论】:

导航栏添加了吗? 您只需要添加一个安全区域。 This Answer 到另一个问题应该可以为您解决这个问题。 【参考方案1】:

InterfaceBuilder 的 .xib 编辑器确实允许您指定约束。您需要在文件检查器(右侧窗格中的第一个选项卡)中打开“使用自动布局”。

或者,您可以通过编程方式设置约束。

已编辑以获取更多信息

如何为搜索栏添加底部约束:

只选择搜索栏。然后点击 .xib 窗口右下角的 Add New Constraints 按钮(它看起来像一个 tie fighter 图标)。点击图形中中心框下方的细红线,将值设置为适当的值(可能接近 0)并通过下拉该值旁边的弹出窗口来验证您将其绑定到的视图。然后点击添加 1 个约束按钮。这应该将搜索栏的底部绑定到其父视图的底部。

所以关键是您只想为搜索框设置相对于其直接父级的约束,这将是您的情况下的单元格视图,无论 xib 不知道它将用于细胞。

【讨论】:

我无法同时选择单元格和搜索栏 我现在编辑了答案,还解释了如何添加约束,以及为什么。

以上是关于如何添加填充到搜索栏swift ios的主要内容,如果未能解决你的问题,请参考以下文章

TableViewController 在搜索时填充,但不会加载初始视图

隐藏状态栏时,iOS 11 搜索栏没有顶部填充

UIToolbar中的iOS8 UISearchBar没有左填充

预填充Google地图自动填充功能(iOS / Swift)

实现搜索栏功能 - Swift

Swift iOS以编程方式在导航栏下方设置scrollView约束