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