垂直对齐 UILabel 中的文本 (xcode)
Vertically align text within a UILabel (xcode)
好久了reader,第一次发贴。我到处寻找解决方案,但我还没有找到有效的答案。
好的问题:我有一个 UILabel,它可以动态分配给它的文本。如果我调整标签的大小以覆盖整个视图控制器,文本就会卡在中间。我找到了一堆解决方案,说要添加以下代码:
detailsLabel.numberOfLines = 0;
detailsLabel.sizeToFit()
但是这没有任何作用。
有人可以看看我的代码并提供建议吗?
import UIKit
class DetailsViewController: UIViewController {
@IBOutlet weak var detailsLabel: UILabel!
@IBOutlet weak var lbldetails: UILabel!
var selectedBeach : Beach?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
detailsLabel.text = selectedBeach?.greaterDetails
lbldetails.text = (selectedBeach?.beachName ?? "") + " Details"
detailsLabel.numberOfLines = 0;
[detailsLabel .sizeToFit()]
}
@IBAction func dismiss(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: nil)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
Swift 中的正确代码是
detailsLabel.sizeToFit()
没有 [ ]
对于 Objective-C,它是
[detailsLabel sizeToFit];
您可以执行以下操作来启用 UILabel
支持多行。
lbldetails.numberOfLines = 0
lbldetails.preferredMaxLayoutWidth = lbldetails.frame.size.width
这里我认为你的 UILable 支持动态高度根据其文本只是关于不显示多行的问题。
请给UILabel
以下限制条件。
希望对您有所帮助。
好的。执行以下操作:
- 从标签向左拖动到视图,松开并选择前导Space到容器边距
- 从标签向右拖动到视图,松开并选择 Trailing Space to Container Margin
- 从标签向上拖动到视图,松开并选择顶部Space到顶部布局指南
之后转到标签的尺寸检查器并确保所有约束都有一个常量 标准。
最后但同样重要的是转到标签的属性检查器并确保 Lines 属性 设置为 0。
如有任何问题欢迎随时提问:)
好久了reader,第一次发贴。我到处寻找解决方案,但我还没有找到有效的答案。
好的问题:我有一个 UILabel,它可以动态分配给它的文本。如果我调整标签的大小以覆盖整个视图控制器,文本就会卡在中间。我找到了一堆解决方案,说要添加以下代码:
detailsLabel.numberOfLines = 0;
detailsLabel.sizeToFit()
但是这没有任何作用。
有人可以看看我的代码并提供建议吗?
import UIKit
class DetailsViewController: UIViewController {
@IBOutlet weak var detailsLabel: UILabel!
@IBOutlet weak var lbldetails: UILabel!
var selectedBeach : Beach?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
detailsLabel.text = selectedBeach?.greaterDetails
lbldetails.text = (selectedBeach?.beachName ?? "") + " Details"
detailsLabel.numberOfLines = 0;
[detailsLabel .sizeToFit()]
}
@IBAction func dismiss(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: nil)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
Swift 中的正确代码是
detailsLabel.sizeToFit()
没有 [ ]
对于 Objective-C,它是
[detailsLabel sizeToFit];
您可以执行以下操作来启用 UILabel
支持多行。
lbldetails.numberOfLines = 0
lbldetails.preferredMaxLayoutWidth = lbldetails.frame.size.width
这里我认为你的 UILable 支持动态高度根据其文本只是关于不显示多行的问题。
请给UILabel
以下限制条件。
希望对您有所帮助。
好的。执行以下操作:
- 从标签向左拖动到视图,松开并选择前导Space到容器边距
- 从标签向右拖动到视图,松开并选择 Trailing Space to Container Margin
- 从标签向上拖动到视图,松开并选择顶部Space到顶部布局指南
之后转到标签的尺寸检查器并确保所有约束都有一个常量 标准。
最后但同样重要的是转到标签的属性检查器并确保 Lines 属性 设置为 0。
如有任何问题欢迎随时提问:)