我是Objective-c和iPhone开发的新手,但到目前为止,一切都很顺利,直到我试图深入挖掘(不太深)。我的问题是我无法初始化具有不同方向的特定坐标的特定UIView子类。
轮换效果很好,但问题是应用初始化时。我正在考虑为不同的方向提供不同的布局。
我的应用程序实际上是一个带有主要UIViewController和三个子视图(UIView s)的iPad应用程序。我们可以调用view1,view2和view3。
在项目的笔尖上创建三个视图,并为它们编码和连接插座。
问题似乎是从viewDidLoad方法生成的...它目前看起来像这样:
-(void)viewDidLoad{
[super viewDidLoad];
[view1 removeFromSuperview];
[view2 removeFromSuperview];
[view3 removeFromSuperview];
UIInterfaceOrientation curOrientation = self.Orientation;
if(curOrientation == UIInterfaceOrientationPortrait)
{
view1 = [[XView alloc] initWithFrame:CGRectMake(20,492,728,492)];
view2 = [[YView alloc] initWithFrame:CGRectMake(384,20,364,472)];
view3 = [[ZView alloc] initWithFrame:CGRectMake(20,20,364,472)];
[self.view addSubview:view1];
[self.view addSubview:view2];
[self.view addSubview:view3];
}
else if(curOrientation == UIInterfaceOrientationLandscapeRight)
{
//Different coordinates
}
else if(curOrientation == UIInterfaceOrientationLandscapeLeft)
{
//Different Coodinates
}
}
我的问题是视图没有得到与viewDidLoad方法中给出的坐标相同的坐标,它们似乎在x = 0,y = 0时初始化。然而,当我旋转设备时,一切都像魅力一样,每个UIView都设置在每个方向的正确位置。基本上我只是为每个UIView调用setFrame方法。
我不确定这里有什么问题......我需要帮助...
此致
答案 0 :(得分:0)
您的视图是否是应用中加载的第一个视图?我发现在某些情况下,方向可以在首次加载时标记为UIDeviceOrientationUnknown。
无论如何,看到你班上的其他人都会很有用。你的viewWillAppear会改变框架吗?有自我。查看正确的维度?