如何在Xcode 4.3中使Autoresize属性工作?

时间:2012-02-18 19:00:36

标签: iphone xcode cocoa uilabel

我最近更新到Xcode 4.3并禁用了我的UILabels的自动收缩属性。我重新检查了IB中的方框并重建了项目,但它仍在切断文本。有什么建议?这是一个已知的错误?有没有办法以编程方式解决这个问题。

5 个答案:

答案 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

中修复