【问题标题】:addSubview crashes iOS 5.1 but not 6.1addSubview 崩溃 iOS 5.1 但不是 6.1
【发布时间】:2013-04-16 02:27:47
【问题描述】:

以下内容在 6.1 中运行良好,但应用在 5.1 中崩溃...

weeklyHeaderViewController =[[WeeklyHeaderViewController alloc] init];
[self.view addSubview:weeklyHeaderViewController.view];

这是一个 iPad 应用程序,视图为 939x31 .xib,包含 7 个 UILabel 对。控制器的 viewDidLoad 方法在 7 对之间插入一个 4x30 图像分隔符,然后将视图移动到屏幕底部的位置。

我可以通过 initWithNibName 对其进行跟踪,因此它似乎分配得很好。它在 addSubview 处崩溃,并且永远不会到达 viewDidLoad 方法。

关于 5.1,我应该在这里缺少什么吗?

任何建议将不胜感激。

谢谢,

约翰

//  WeeklyHeaderViewController.m

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) { 

    }
    return self;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    CGRect myImageRect = CGRectMake(131, 0, 4, 30);
    UIImageView *image = [[UIImageView alloc] initWithFrame:myImageRect];
    [image setImage:[UIImage imageNamed:@"weeklyDaySeparator.png"]];
    [self.view addSubview:image];
    [image release];

    myImageRect = CGRectMake(266, 0, 4, 30);
    image = [[UIImageView alloc] initWithFrame:myImageRect];
    [image setImage:[UIImage imageNamed:@"weeklyDaySeparator.png"]];
    self.view addSubview:image];
    [image release];

    myImageRect = CGRectMake(400, 0, 4, 30);
    image = [[UIImageView alloc] initWithFrame:myImageRect];
    [image setImage:[UIImage imageNamed:@"weeklyDaySeparator.png"]];
    [self.view addSubview:image];
    [image release];

    myImageRect = CGRectMake(535, 0, 4, 30);
    image = [[UIImageView alloc] initWithFrame:myImageRect];
    [image setImage:[UIImage imageNamed:@"weeklyDaySeparator.png"]];
    [self.view addSubview:image];
    [image release];

    myImageRect = CGRectMake(670, 0, 4, 30);
    image = [[UIImageView alloc] initWithFrame:myImageRect];
    [image setImage:[UIImage imageNamed:@"weeklyDaySeparator.png"]];
    [self.view addSubview:image];
    [image release];

    myImageRect = CGRectMake(804, 0, 4, 30);
    image = [[UIImageView alloc] initWithFrame:myImageRect];
    [image setImage:[UIImage imageNamed:@"weeklyDaySeparator.png"]];
    [self.view addSubview:image];
    [image release];

    self.view.frame = CGRectMake(74, 687-14, self.view.frame.size.width, self.view.frame.size.height);

}

【问题讨论】:

  • 也许你在 weekHeaderViewController.xib 或其视图中使用了自动布局
  • 显示的错误是什么?
  • iOS初学者,就是这样!我总是忘记那件事。谢谢!如果您希望得到答案,请继续并让您的评论成为答案。

标签: ios ipad ios5.1 addsubview


【解决方案1】:

感谢 iOSBegginer 提醒我在我的 xib 中取消选中 AutoLayout。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    相关资源
    最近更新 更多