0

在我的视图控制器中,我的视图在 loadView 方法中初始化:

- (void)loadView
{
    self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    [self loadViewController];

    [self.view setBackgroundColor:[UIColor whiteColor]];
}

loadViewController 方法创建一个按钮并将其添加到视图中。这是 loadViewController 方法的一个片段,用于初始化和定位按钮:

graphicalButton = [UIButton buttonWithType:UIButtonTypeCustom];
        graphicalButton.exclusiveTouch = YES;
        [graphicalButton setImage:kGraphicalIconSelected
                         forState:UIControlStateSelected];
        [graphicalButton setImage:kGraphicalIconDeSelected
                         forState:UIControlStateNormal];
        [graphicalButton setFrame:CGRectMake(230, 100, 37, 34)];
        [graphicalButton addTarget:self
                            action:@selector(graphicalOptionAction:)
                  forControlEvents:UIControlEventTouchUpInside];
        [graphicalButton setUserInteractionEnabled:NO];
        NSLog(@"graphical button x %f",graphicalButton.frame.origin.x);
        [self.view addSubview:graphicalButton];

这会在 iPhone 4s 模拟器上正确显示按钮。日志语句也正确记录了来源。

但是,在 iPhone 6 模拟器上,日志语句始终将 0 记录origin.x为 0。如果代码运行,则不会显示该按钮。但是,如果我在此代码片段的开头设置了一个断点,然后单步执行每一行,它会origin.x正确记录并且即使在 iPhone 6 模拟器上也会显示该按钮。

我什至尝试添加对loadViewControllerinviewWillAppear方法的调用,但即使这个按钮也会出现同样的问题。关于为什么会发生这种情况以及如何解决这个问题的任何想法?

4

0 回答 0