【发布时间】:2012-11-26 07:22:07
【问题描述】:
我正在尝试动态设置标签大小。它以一种奇怪的方式工作,我截断了一些文本。 我首先设置我的标签文本,然后尝试像这样调整它的大小。
_switch2Label.text = @"Call on alarm, there will be no call if other user of alarm system will recieve an alarm call and confirm (answer) it by pressing 0#";
_switch2Label.numberOfLines = 0;
[self newFrame:_switch2Label];
- (void) newFrame:(UILabel *) label
{
CGSize maxSize = self.view.bounds.size;
maxSize.width = maxSize.width - 30;
CGSize labelSize = [label.text sizeWithFont:label.font constrainedToSize:maxSize lineBreakMode:label.lineBreakMode];
CGRect newFrame = label.frame;
newFrame.size.height = labelSize.height;
label.frame = newFrame;
}
我只得到三行文本,而这个标签需要五行。也许有人可以在这里看到我的错误?如果我在标签上添加更多文本,它会显示出来,但仍有大约两行标签文本被截断。
【问题讨论】:
-
尝试将maxSize改为MAXFLOAT,maxSize = CGSizeMake(MAXFOAT,self.view.bounds.size.width-30);
-
试试这个-maxSize.width = label.frame.size.width;
-
Rahul,确实有效,写下这个作为答案,我会接受。如果可以的话 - 你能解释一下,为什么是宽度?我的高度计算错误,而不是宽度,所以我有点不清楚。
-
你的宽度没问题。为 maxSize.height 传递一个大数字。返回的高度将是需要的。
-
由于某种原因,它并不好。传递大数字也无济于事。我再重复一遍,我通过更改 maxSize.width = label.frame.size.width 让它正常工作。用大量文本检查,标签大小调整为魅力。
标签: objective-c ios cocoa-touch