我最近更新到Xcode 4.3并禁用了我的UILabels的自动收缩属性。我重新检查了IB中的方框并重建了项目,但它仍在切断文本。有什么建议?这是一个已知的错误?有没有办法以编程方式解决这个问题。
答案 0 :(得分:19)
我看到了同样的事情。您可以通过编程方式解决它(我在viewDidLoad中执行):
myLabel.adjustsFontSizeToFitWidth = YES;
答案 1 :(得分:3)
我遇到了同样的问题。这是修复,我将它添加到实用程序方法,因为我的项目中有超过100个xib,并且其中一些需要修复。效果很好。
将此添加到Utility.m:
// UIView+viewRecursion.h
@interface UIView (viewRecursion)
- (NSMutableArray*) allSubViews;
@end
// UIView+viewRecursion.m
@implementation UIView (viewRecursion)
- (NSMutableArray*)allSubViews
{
NSMutableArray *arr=[[NSMutableArray alloc] init];
[arr addObject:self];
for (UIView *subview in self.subviews)
{
[arr addObjectsFromArray:(NSArray*)[subview allSubViews]];
}
return arr;
}
@end
而且:
+(void)fixLabels:(UIView *)theView{
for(UIView *v in [theView allSubViews])
{
if([v isKindOfClass:[UILabel class]])
{
if( !((UILabel*)v).adjustsFontSizeToFitWidth ){
((UILabel*)v).adjustsFontSizeToFitWidth=YES;
// NSLog(@"fixed %@", theView);
}
}
}
}
然后从viewDidLoad调用fixLabel,查看任何UILabel不自动缩小的视图:
[Utility fixLabels:self.view];
答案 2 :(得分:0)
我有完全相反的问题!我更新到Xcode 4.3,现在它自动收缩我的tableview单元格中的文本,当我希望它们用省略号截断它们。我浏览了故事板并修改了可能与此有关的所有选项,但它拒绝按我的意愿行事。太令人沮丧了。
...编辑
尝试并重新创建Xcode正在对我做的事情,因为它与你发生的事情正好相反。在故事板中突出显示您的tableview原型单元格,然后单击“标题”和“字幕”字样。您可以在属性检查器中找到AutoShrinking属性,我想您可以通过取消选中此框并重建应用来解决您的问题。很奇怪Xcode升级会如何导致这种情况。它还导致我的应用程序行为有点奇怪(即在模拟器中运行时意外崩溃),但一些清理和重建解决了这个问题。希望你能解决这个问题,因为我知道这对我来说同样令人沮丧!
答案 3 :(得分:0)
它对我做了同样的事情。所有自动收缩都被关闭。放回字体大小并开启自动收缩功能实际上并不起作用。
我必须像JLundell建议的那样以编程方式修复它。
答案 4 :(得分:0)
Xcode 4.3不遵守adjustsFontSizeToFitWidth属性的Interface Builder设置。
您可以通过以JLundell建议的方式设置属性值来修复它。
myLabel.adjustsFontSizeToFitWidth = YES;
已在4.3.1
中修复