0

当我加载我的应用程序按钮图像时,它不会在第一次查看时viewDidLoad加载,而是在之后加载viewWillAppear

这是我的代码,

if (activityorientation == UIInterfaceOrientationPortrait || activityorientation == UIInterfaceOrientationPortraitUpsideDown)
{
    CGRect frameloginscreenbutton1 = CGRectMake(0, 0, 768,1004);
    [loginscreenbutton1 setFrame:frameloginscreenbutton1];

}
else if(activityorientation == UIInterfaceOrientationLandscapeLeft || activityorientation == UIInterfaceOrientationLandscapeRight)
{       
    CGRect frameloginscreenbutton1 = CGRectMake(0, 0, 1024,768);
    [loginscreenbutton1 setFrame:frameloginscreenbutton1];
}

任何指针?

4

2 回答 2

1

这有点取决于按钮是否从笔尖加载。viewDidLoad如果它是从 nib 加载的,则在调用时它不存在。您可以使用断点自己验证这一点。到viewDidAppear:被调用的时候,它已经被创建了。

如果要配置从 Interface Builder 加载的项目(无论是从 xib 文件还是从 Storyboard),那么这样做的正确时间是通过覆盖awakeFromNib

于 2013-09-10T13:43:04.920 回答
0

我认为因为没有创建是或类似的东西......

您可以在零延迟后使用此方法在 viewdidload 中设置帧。

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self performSelector:@selector(setButtonFrame) withObject:nil afterDelay:0];
}

-(void) setButtonFrame 
{
   //your code
}

如果它不起作用,请尝试其他延迟,例如 0.1

于 2013-09-02T09:23:48.533 回答