我读了苹果文档中的point/pixels位,但仍然不是完全清楚。 我试图完成的工作是将一个工具栏放在触摸textview时出现的键盘上方。 IOS4之前的工作方式是将工具栏放置在位置0,480
处,然后通过从Y坐标中减去keypad.size.y
来实现。在IOS4中,只要我使用3gs模拟器,它仍然可以正常工作,但只要切换到巨型iphone4模拟器,工具栏就不会出现键盘,因为它只会移动到屏幕外某处。Iphone的高清屏幕没有映射到绘图坐标
我明白现在是当它涉及到计算屏幕坐标和有意义使用类似
CGRect phoneRect = [Util getPhoneScreenSize];
CGSize phoneSize = phoneRect.size;
CGRect toolbarFrame = CGRectMake(0, phoneSize.height, phoneSize.width, 44);
其中getPhoneScreenSize更换商工具栏的起始位置(0480)参与比例因子:
+(CGRect) getPhoneScreenSize
{
UIScreen *mainScreen = [UIScreen mainScreen];
CGRect bounds = [mainScreen bounds];
CGRect phoneRect = bounds;
if([[UIScreen mainScreen] respondsToSelector:NSSelectorFromString(@"scale")])
{
CGFloat scale = [mainScreen scale];
if (scale > 0) {
phoneRect.origin.x *= scale;
phoneRect.origin.y *= scale;
phoneRect.size.width *= scale;
phoneRect.size.height *= scale;
}
}
return phoneRect;
}
但仍然令人困惑的部分是,虽然我从getPhoneScreenSize
获得正确的分辨率为640 x 960的高清屏幕,使用这些坐标设置我的工具栏刚好在屏幕外(0,960)将事实上p将它从屏幕上拉开,并使其不再出现。 似乎高清屏幕的大小没有映射到我需要使用的绘图坐标来放置在同一屏幕上的确切位置的东西。 模拟器对我来说很奇怪吗?或者我错过了什么?
其时代喜欢这些我希望inputAccessoryView之前3.2 :(可选路了。 – 2010-07-19 19:26:04