首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NavigationBar中的自定义TitleView

NavigationBar中的自定义TitleView
EN

Stack Overflow用户
提问于 2020-07-17 23:51:44
回答 1查看 285关注 0票数 1

我正在尝试将用户的图像和名称添加到导航栏中,如下所示:

我尝试通过编程来实现这一点,因为我的代码库不使用xib或故事板(启动屏幕除外)。

下面是我的代码的简要介绍:

代码语言:javascript
复制
  guard let prof = self.profile else { return }
    let imageView = ImageView(type: .none, avatar: true, 25)
    let nameLabel = UILabel()
    nameLabel.text = prof.name
    nameLabel.numberOfLines = 0
    imageView.setImage(prof.profileImage?.imageURL)
    let view = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 300))
    view.addSubview(nameLabel)
    view.addSubview(imageView)
    nameLabel.snp.makeConstraints { make in
        make.bottom.equalToSuperview().inset(5)
        make.left.right.equalToSuperview()
    }

    imageView.snp.makeConstraints { make in
        make.bottom.equalTo(nameLabel.snp.top).offset(5)
        make.top.equalToSuperview().inset(5)
    }
    
    self.navigationItem.titleView = view

我使用SnapKit来布置UI,ImageView只是一个自定义的UIImageView,它处理图像的下载,有一个内置的加载指示器,一些格式选项,通过告诉初始化它是一个头像图像,也请求一个小得多的图像。

我将父视图的高度设置为300,只是为了测试导航栏的高度以适应我的内容,但是高度没有变化。

如果有人有办法完成这个设计,或者有一个类似的替代方案,我将非常感谢大家的帮助。

编辑:不使用SnapKit的解决方案完全没问题。

编辑:@asanli对解决方案的描述如下:

代码如下:

代码语言:javascript
复制
let view = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 300))
view.addSubview(nameLabel)
view.addSubview(imageView)
imageView.snp.makeConstraints { make in
    make.top.equalToSuperview().inset(10)
    make.width.height.equalTo(50)
    make.centerX.equalToSuperview()
}
nameLabel.snp.makeConstraints { make in
    make.top.equalTo(imageView.snp.bottom).offset(10)
    make.centerX.equalToSuperview()
}
EN

回答 1

Stack Overflow用户

发布于 2020-07-24 19:37:44

我找到了一个可能对你有帮助的图书馆。我从来没有用过它,但希望它能帮助你。

https://github.com/Pircate/EachNavigationBar

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62957525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档