如何在iPhone模拟器屏幕上测量UI对象的位置

时间:2010-01-27 13:00:50

标签: iphone uitableview keyboard ios-simulator uisearchbar

我在纸上计算了位置和偏移量。我编写了代码并进行了调试,得到了预期的结果。然而,iPhone模拟器上的重叠大约15个像素。

继续我的调试,我需要知道屏幕上的UI对象在哪里。

与弹出搜索键盘相关,并在静态UISearchBar和动态添加的UITabBar之间调整UITableView的大小(表视图嵌入到其中一个选项卡中)。不,我真的不想使用任何硬编码值正确的旋转和不同的屏幕尺寸。

我怎么能找到这个?

- (void)keyboardWasShown:(NSNotification*)aNotification
{
if (self.keyboardShown)
    return;

// Get keyboard dimensions
NSDictionary* info = [aNotification userInfo];
NSValue* aValue = [info objectForKey:UIKeyboardBoundsUserInfoKey];
CGSize kbSize = [aValue CGRectValue].size;
NSValue* endValue = [info objectForKey:UIKeyboardCenterEndUserInfoKey];
CGPoint endCenter = [endValue CGPointValue];

CGRect frame = myView.frame;
frame.size.height = endCenter.y - kbSize.height/2 - frame.origin.y;

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.2];

myView.frame = frame;

[UIView commitAnimations];

self.keyboardShown = YES;
}

...代码以防万一有明显的错误我再也看不到了......

1 个答案:

答案 0 :(得分:1)

你最好的选择可能是UIView的convertPoint:toView:。要找出给定视图的位置,请使用:

CGPoint myPoint = [myView convertPoint:CGPointMake(0, 0) toView:((YourAppDelegate *)[[UIApplication sharedApplication] delegate]).window];