ActionSheet显示在视图下方

时间:2013-07-17 19:02:00

标签: ios objective-c

尝试有一个操作表,其中包含跨多个设备(iphone4 / 5)屏幕底部的选择器视图显示。我假设要让它在屏幕底部显示为齐平,你会希望动作表的Y原点位于视图的高度(将其一直推到底部)减去动作表的高度(将其向上移动到Y轴上。)

然而,这显示我的动作表远低于屏幕底部。

代码:

[actionSheet setFrame:CGRectMake(0, self.view.frame.size.height - 294, 320, 294)];

NSLog(@"%f %f %f %f",
      self.view.frame.origin.x,self.view.frame.origin.y,
      self.view.frame.size.width,self.view.frame.size.height);

NSLog正在吐出:`0.000000 0.000000 320.000000 372.000000

因此动作表中的372-294是78,所以给出了什么?显然我的逻辑是有缺陷的。

1 个答案:

答案 0 :(得分:0)

当您致电

时,您传递了哪种观点
showInView:(UIView*)view

听起来你可能在错误的视野中传球并错误地抵消了你的位置。

再加上这个,您不必处理UIActionSheet的框架。它应该相应地为你定位。

[_myActionSheet showInView:[[[UIApplication sharedApplication] delegate] window]];

会让它显示在窗口的底部。