[英]Attempting at centering UILabel in Swift
我正在嘗試居中放置UILabel,但似乎沒有響應。 這是我的直觀代碼,盡管我確信這與實現此目標的最佳方法相去甚遠。
let sanskritLabel = UILabel(frame: CGRectZero)
sanskritLabel.text = page!.sanskrit!
sanskritLabel.frame.size.width = self.view.frame.size.width
sanskritLabel.textAlignment = .Center
sanskritLabel.numberOfLines = 0
sanskritLabel.layer.borderColor = UIColor.cyanColor().CGColor
sanskritLabel.layer.borderWidth = 3.0;
sanskritLabel.center = CGPointMake(self.view.frame.width/2, verse.frame.origin.y + chapterStringSize.height + 20)
sanskritLabel.sizeToFit()
我在下面的其他UILabel上使用了它,它們似乎居中。 在這種情況下,此UILabel sanskritLabel
似乎浮動在左側:
這很奇怪,因為我明確地說寬度應該是self.view.frame.size.width
,但似乎要么忽略了它。
我想像一下,如果將寬度設置為與我聲明的寬度完全相同(375),則由於.textAlignment
屬性,文本將居中。
知道為什么這行不通嗎?
正如喬納(Jonah)所說,在將frame
設置為center
之后,您將使用sizeToFit
調整視圖的大小。 因此,調整視圖大小時,它會更改size
但保持origin
不變。 要解決問題,請在設置center
之前致電sizeToFit
:
sanskritLabel.sizeToFit()
sanskritLabel.center = CGPointMake(self.view.frame.width/2, verse.frame.origin.y + chapterStringSize.height + 20)
您正在調用sizeToFit ,它會更新標簽的框架:
- sizeToFit
Resizes and moves the receiver view so it just encloses its subviews.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.