gpt4 book ai didi

ios - 参见下图,为什么两个标签(棕色)的组合高度与标签(红色)的高度不同?

转载 作者:行者123 更新时间:2023-11-29 05:56:48 24 4
gpt4 key购买 nike

我只是将原始字符串 \nfoo\n\nbar\n\nfoo\n\nbar\n 切成两个不同的字符串 \nfoo\n\nbar\n\nfoo\n\nbar\n。剪下的琴弦将被放入其专用标签中。我期望两个标签的组合高度与具有原始字符串的标签相同。你能指导我解释一下吗?有没有一种方法可以使组合后的两个标签与一个标签相同,而无需从剪切字符串中添加/删除字符?

enter image description here

Playground

import PlaygroundSupport
import Foundation
import UIKit

PlaygroundPage.current.needsIndefiniteExecution = true

let viewWidth: CGFloat = 100.0

func createLabel(_ text: String, _ backgroundColor: UIColor = .white) -> UILabel {
let label = UILabel()
label.text = text
label.numberOfLines = 0
label.backgroundColor = backgroundColor
label.textColor = .black
label.sizeToFit()
label.frame.size.width = viewWidth
return label
}

let view = UIView(frame: CGRect(x: 0, y: 0, width: viewWidth, height: 1000))
view.backgroundColor = .white

let label1 = createLabel("\nfoo\n\nbar\n", .green)
let label2 = createLabel("\nfoo\n\nbar\n", .blue)
let label3 = createLabel("\nfoo\n\nbar\n\nfoo\n\nbar\n", .red)
let label4 = createLabel("\nfoo\n\nbar\n", .brown)
let label5 = createLabel("\nfoo\n\nbar\n", .brown)
label2.frame.origin.y = label1.frame.maxY
label3.frame.origin.y = label2.frame.maxY
label4.frame.origin.y = label3.frame.maxY
label5.frame.origin.y = label4.frame.maxY

view.addSubview(label1)
view.addSubview(label2)
view.addSubview(label3)
view.addSubview(label4)
view.addSubview(label5)

PlaygroundPage.current.liveView = view

/*
\nfoo\n\nbar\n
\nfoo\n\nbar\n
*/

最佳答案

当你以这种方式组合 label4 和 label5 时,你会得到三个新行,

label4 应该是 let label4 = createLabel("\nfoo\n\nbar", .brown)

删除末尾的 \n

关于ios - 参见下图,为什么两个标签(棕色)的组合高度与标签(红色)的高度不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55074672/

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