我正在获取UILabel的宽度[在文本设置之后]:
myUILabel.frame.width
但它的宽度始终相同,无论它是否包含字符串:"Hello."
或字符串:"Hello everyone on this planet."
。但是UILabel需要有更大的宽度和第二个String。
答案 0 :(得分:37)
试试myUILabel.intrinsicContentSize()
。当然,请确保先设置字体。
答案 1 :(得分:0)
您应该使用[label sizeToFit]
sizeToFit
会拉伸标签以容纳文字。
另一种解决方案是计算字符串的宽度,并根据字符串宽度重新构建标签。
对于第二种解决方案,您可以将字符串的大小计算为
CGSize strSize = CGSizeZero;
CGSize minSize = CGSizeZero;
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
{
NSAttributedString *attributedText = [[[NSAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName: label.font}] autorelease];
CGRect rect = [attributedText boundingRectWithSize:constraintSize
options:NSStringDrawingUsesLineFragmentOrigin
context:nil];
strSize = rect.size;
}
else
{
strSize = [text sizeWithFont:label.font constrainedToSize:constraintSize];
}
答案 2 :(得分:0)
尝试
awk -v id="$your_shell_variable" '
BEGIN{ FS=OFS="@@@" }
NR>1{
print prev
}
{
prev=$0
}
END{
num=split(prev,array,"@@@")
if(array[1]==id && array[num]=="SUCCESS"){
array[num]="FAILURE"
}
for(i=1;i<=num;i++){
val=(val?val OFS:"")array[i]
}
print val
}
' Input_file > temp && mv temp Input_file