gpt4 book ai didi

ios - 在 Navigation titleView 中将两个 View 居中

转载 作者:行者123 更新时间:2023-11-29 00:59:02 26 4
gpt4 key购买 nike

我希望我的应用程序表现得像这样:

enter image description here

让我的 NavigationItem.titleView 具有准确的行为很重要

到目前为止,我遵循了这些步骤:

我正在我的应用程序中以编程方式创建三个 View :

(1) container => 包含 (2) 和 (3) => 附加了一个 gestureRecognizer

   let container = UIView(frame: CGRectMake(0,0,200,40))

(2) imageContainer => 有一张图片

        let imageContainer = UIImageView(frame: CGRectMake(0, 0, 30, 30))
imageContainer.image = UIImage(named: "mock.jpg")

(3) textContainer => 有一些文本

        let textContainer = UILabel(frame: CGRectMake(0,0, 180, 20))
textContainer.text = "Group xY"

接下来我设置图像的中心以对齐它们:

    imageContainer.center = CGPointMake(container.frame.size.width  / 2,
container.frame.size.height / 2)
textContainer.center = CGPointMake(container.frame.size.width / 2,
container.frame.size.height / 2)

现在我将所有 subview 添加到我的 View 并设置

self.navigationItem.titleView = (1)

启动应用显示,titleView 的元素没有正确对齐

enter image description here

有没有办法正确地实现这个确切的行为?

注意:不要担心圆形图像。我知道如何实现。

最佳答案

您应该将 textContainer 的大小设置为更接近文本的边界。您可以通过调用 sizeToFit 来完成此操作,然后您需要将 imageContainer 设置在文本的左侧,这样图像的中心应该是图像宽度的一半加上从开始的缓冲区文本。您可以通过说 imageContainer.center = CGPointMake(textContainer.frame.minX - imageContainer.frame.size.width * 0.5 - buffer,container.frame.size.height/2) 来做到这一点。您的代码应类似于:

let container = UIView(frame: CGRectMake(0,0,200,40))
let buffer:CGFloat = 8.0
let maxWidth:CGFloat = 120.0

let imageContainer = UIImageView(frame: CGRectMake(0, 0, 30, 30))
imageContainer.image = UIImage(named: "profile.jpg")

let textContainer = UILabel(frame: CGRectMake(0,0, 180, 20))
textContainer.text = "Group xY"
textContainer.adjustsFontSizeToFitWidth = true
textContainer.minimumScaleFactor = 0.95

textContainer.sizeToFit()
textContainer.frame.size.width = min(maxWidth, textContainer.frame.size.width)
textContainer.center = CGPointMake(container.frame.size.width / 2,
container.frame.size.height / 2)
imageContainer.center = CGPointMake(textContainer.frame.minX - imageContainer.frame.size.width * 0.5 - buffer,
container.frame.size.height / 2)

container.addSubview(imageContainer)
container.addSubview(textContainer)

哪个会给你enter image description here为您的容器。

关于ios - 在 Navigation titleView 中将两个 View 居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37257992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com