簡體   English   中英

嘗試在Swift中將UILabel居中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM