簡體   English   中英

以編程方式創建具有動態大小的 UILabel

[英]Creating UILabel programmatically with dynamic size

我正在嘗試以編程方式創建UILabel ,但應根據內容動態設置高度和寬度。 我不想創建具有一定寬度和高度的初始CGRect ,這會在我的情況下導致設計問題。

我試圖做的是:

        self.freeLabel = [[UILabel alloc] initWithFrame:CGRectMake(frameView.layer.frame.size.width - 50, -8, 120, 25)];
        self.freeLabel.numberOfLines = 0;
        [self.freeLabel setBackgroundColor:[UIColor colorWithRed:0.91 green:0.18 blue:0.42 alpha:1.0]];
        self.freeLabel.layer.cornerRadius = 5;
        self.freeLabel.layer.masksToBounds = YES;
        [self addSubview:self.freeLabel];
        [self sizeToFit];

但這樣我就無法將UILabel添加到我的視圖中。

您必須添加以下代碼,以便self.freeLabel具有新的高度。

[self.freeLabel sizeToFit];

self.freeLabel.frame = CGRectMake(frameView.layer.frame.size.width - 50, -8, 120, self.freeLabel.frame.size.height)];

self.frame = // update size based on the height of the label.

但是我有一些我覺得是錯誤的觀點。

為什么 self.freeLabel 的 x self.freeLabel被定義為frameView.layer.frame.size.width - 50但 label 的寬度為120 當然,這個 label 將 go 超出您的視野。 所以frameView.layer.frame.size.width - 50應該是frameView.layer.frame.size.width - 120

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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