2013-07-17 36 views
0

尝试在多个设备(即iphone4/5)的屏幕底部有一个包含pickerview显示的操作表。我假设要使它在屏幕底部显示齐平,你需要动作表的Y原点在视图的高度(一直推到底部)减去动作表的高度(将其移回Y轴)。ActionSheet显示在视图下方

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

代码:

[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从actionsheet是78,那么怎么办?显然我的逻辑是有缺陷的。

+0

使用UIActionsheet? – Wain

+0

是的UIActionsheet –

回答

0

哪种说法是你传递,当你调用

showInView:(UIView*)view 

听起来像你可能在错误的视图中,并通过错误地抵消你的位置。

要加上这个,你不应该处理UIActionSheet的框架。它应该为你自己定位。

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

将使其显示在窗口的底部。

+0

我不知道这是否会改变的事情,但在你的示例actionsheet似乎是一个属性,我创建我的代码。使用底部的例子说无法识别的选择器。嗯 –

+0

这些都是在代码中完成的。只需将_myActionSheet更改为actionSheet(您的示例中您的操作表的名称)即可。 –