对我来说有些奇怪的问题:
- (void)horizontalPickerView:(HorizontalPickerView *)picker didSelectElementAtIndex:(NSInteger)index {
if (self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
self.interfaceOrientation == UIInterfaceOrientationLandscapeRight) {
sdashSize = CGRectMake(0.0f, 40.0f, self.view.frame.size.width, self.view.frame.size.height);
} else {
sdashSize = CGRectMake(0.0f, 40.0f, self.view.frame.size.height, self.view.frame.size.width - 40.0f);
}
}
就像你看到的那样,我有一个选择器视图。这个方法每次运行,我在这个选择器视图中选择了一些东西。所以现在如果我将我的iPhone旋转到横向并使用此代码转到下一个视图,它会运行一次 - >转到if状态并给我大小:320 x 480.所以现在选择一个元素在相同的方向并运行相同的代码(如果状态再次)给我480 x 320.我不明白怎么可能相同的代码在相同的方向可以给我不同的价值观。
答案 0 :(得分:2)
请勿使用frame
属性,请使用bounds
属性。实质上:
视图的框架(CGRect)是其超视图坐标系中矩形的位置。默认情况下,它从左上角开始。
视图的界限(CGRect)在自己的坐标系中表示视图矩形。
This answer进一步深入解释了发生了什么。