2015-05-05 235 views
0

长时间阅读器,第一次张贴海报。我已经搜索了一个解决方案,但我还没有找到一个有效的答案。垂直对齐UILabel中的文字(xcode)

好的问题:我有一个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. 
} 
*/ 
+1

,所以我想你没有使用自动布局? –

+0

嗨安德烈斯洛塔,感谢您的评论。自动布局框在视图控制器上被选中。 – Flexo

+0

好的,你在故事板中设置标签?你有没有设置任何限制? –

回答

2

好的。从标签到视图,释放从标签LEFT

  1. 拖动到视图,释放和选择前导空格集装箱保证金
  2. 向右拖动,选择尾随空间集装箱保证金:请执行下列操作从标签到视图,释放
  3. 向上拖动,选择顶层空间顶部布局指南

之后,去标签的尺寸检查员,并确保约束都有一个常数标准

最后但并非最不重要去标签的属性检查器中,并确保该线属性设置为0。

随时问,如果你有任何问题:)

+0

优秀!问题解决了!非常感谢Andre Slotta! :) – Flexo

+0

非常欢迎你:) –

0

斯威夫特正确的代码

detailsLabel.sizeToFit() 

没有[]

而为的Objective-C是

[detailsLabel sizeToFit]; 
+0

嗨Stefan Salatic,感谢您的快速响应,我已更新代码与您的建议,但我得到完全相同的结果。 – Flexo

+0

嗨,如果你需要更多的信息,你可以看看这个完整的答案http://stackoverflow.com/questions/1054558/vertically-align-text-within-a-uilabel?rq=1 –

0

你可以做以下的事情,使支持多行的UILabel

lbldetails.numberOfLines = 0 
lbldetails.preferredMaxLayoutWidth = lbldetails.frame.size.width 

在这里,我认为你的UILable支持动态的高度,按照其文本只是问题就不会显示多行。

请给UILabel以下限制。 enter image description here

希望这对你有所帮助。

+0

@flexo,让我知道如果你仍然有问题。 –

+0

嗨,没有!感谢您的评论。我已经将上面的解决方案添加到代码中,但我仍然得到相同的结果。例如小广场......里面。 – Flexo

+0

@Flexo,你的标签有不同的高度吗?根据不同的文本..只是我想通过设置约束得到天气问题? –