我试图在导航栏中设置标题标签以允许多行.我有自定义导航控制器代码,我将多行代码放入.我知道代码已经存在,但我的多行部分无效.
let titleLabel = UILabel()
titleLabel.frame = CGRectMake(0, 0, self.navigationBar.frame.width, self.navigationBar.frame.height * 2)
titleLabel.numberOfLines = 0
titleLabel.lineBreakMode = .ByWordWrapping
navigationItem.titleView = titleLabel
Run Code Online (Sandbox Code Playgroud)
但是文本最后仍然没有结束.我也尝试将它放入单独的视图控制器本身,self.navigationController?.在前面添加navigationItem相同的结果.
我的代码中是否有一些东西会使标题标签不能使用多行?
我在堆栈溢出时看到了类似的帖子,但是没有看到任何特定的大型导航栏,当用户向下滚动时会改变大小.
我想要实现的是我的导航栏中的左对齐标题和副标题,当转换为常规导航栏时,它会隐藏或缩小字幕大小.
SO中的其他答案如下所示:(/sf/answers/2968044341/),创建自定义视图,但它们通常对条形图中的移动没有响应.
关于如何正确实现这一点的任何想法?
在iOS中,您可以使用以下命令创建标题:
self.navBar.title = @"";
Run Code Online (Sandbox Code Playgroud)
我在头文件中设置navBar.
是否还有subTitle/Description的内容?
我发现description当我输入一个.后来self.navBar并想到也许我可以用这个做点什么?
navigationItem.hidesBackButton = true
navigationItem.leftBarButtonItem = nil
head = UIView()
head.frame = CGRectMake(0, 0, 200, 44)
head.frame.origin.x = CGFloat(0)
navigationItem.titleView = head
Run Code Online (Sandbox Code Playgroud)
我尝试将 titleView 与左侧对齐,但它仍然保持在中间。
private func setTitle(title:String, subtitle:String, animate: Bool) -> UIView {
let titleLabel = UILabel(frame: CGRect(x:0, y:-5, width:0, height:0))
titleLabel.backgroundColor = UIColor.clear
titleLabel.textColor = UIColor.gray
titleLabel.font = UIFont.boldSystemFont(ofSize: 15)
titleLabel.text = title
titleLabel.adjustsFontSizeToFitWidth = true
let subtitleLabel = UILabel(frame: CGRect(x:0, y:18, width:0, height:0))
subtitleLabel.backgroundColor = UIColor.clear
subtitleLabel.textColor = UIColor.black
subtitleLabel.font = UIFont.systemFont(ofSize: 12)
subtitleLabel.text = subtitle
subtitleLabel.adjustsFontSizeToFitWidth = true
let titleView = UIView(frame: CGRect(x:0, y:0, width:max(titleLabel.frame.size.width, subtitleLabel.frame.size.width), height:30))
let titleViewTapGesture = UITapGestureRecognizer(target: self, action: #selector(titleViewTapped(sender:)))
titleView.addGestureRecognizer(titleViewTapGesture)
titleView.addSubview(titleLabel)
if animate{
subtitleLabel.alpha = 0.0 …Run Code Online (Sandbox Code Playgroud)