ios - 如何在自定义 TitleView 的 subview 上添加 subview

标签 ios swift uinavigationbar

我将自定义 View 设置为 UINavigationBar 的 titleView。 当我只设置带框架的 View 时,它工作正常。

但是,如果我将任何 subview 添加到我设置为标题 View 的 View 中,它就不会出现。


添加到 titleView 的 View

class NavigationBarSearchBar: UIView {

    let view: UIView = {
        let v = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 20))
        v.translatesAutoresizingMaskIntoConstraints = false
        return v
    }()


    override init(frame: CGRect) {
        super.init(frame: frame)
        setupSubviews()
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }


    private func setupSubviews() {

        addSubview( view )
        [
        view.widthAnchor.constraint(equalToConstant: 20),
        view.heightAnchor.constraint(equalToConstant: 20),
        view.centerYAnchor.constraint(equalTo: centerYAnchor),
        view.centerXAnchor.constraint(equalTo: centerXAnchor)
        ].forEach { $0.isActive = true }
    }
}


View Controller 声明

private lazy var searchBar: UIView = {
        let sb = NavigationBarSearchBar(frame: CGRect(x: 0, y: 0, width: CGFloat.greatestFiniteMagnitude, height: 40))
        return sb
    }()


将自定义 View 设置为导航栏

navigationItem.titleView = searchBar

最佳答案

lazy   var searchBar:UISearchBar = UISearchBar(frame: CGRectMake(0, 0, 200, 20))
searchBar.sizeToFit()
navigationItem.titleView = searchBar

关于ios - 如何在自定义 TitleView 的 subview 上添加 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54663983/

相关文章:

ios - 在 iOS 中使用核心数据时,如何为分段 TableView 构建sections数组?

ios - 随机选择、不重复的Sql语句

objective-c - 视网膜显示的位图字体

swift - 如何快速检查对象数组中是否存在属性值

swift - swift 中的正则表达式

ios - 如何在 iOS 9 上淡入/淡出导航栏?

ios - ViewController 中导航栏的不同颜色阴影

objective-c - 为按钮添加边框和阴影

ios - 无法使用类型为 'Double' 的参数列表调用类型为 '(String?)' 的初始值设定项 - Swift Storyboard

iphone - 是否可以将图像图标添加到特定 View 中的导航栏?