
我现在想要提出一个UIActionSheet,但考虑到用户拿着设备的方式,我想将表单与方向匹配.
似乎UIActionSheet与MFComposerVIEwController不同,它不是从Statusbar获取它的方向,我根据方向旋转它,但从底层视图控制器获取它的方向.换句话说,UIActionSheet以纵向方式显示,无论设备如何被保持.
我试过了:
CGAffinetransform t = CGAffinetransformMakeRotation(lastUIAngle);[actionSheet settransform:t];if (UIInterfaceOrIEntationIsLandscape(lastOrIEntation)) actionSheet.frame = CGRectMake(0,480,320);else actionSheet.frame = CGRectMake(0,320,480);actionSheet.center = self.vIEw.center;
我设法得到正确的方向,但最终的动作表从纵向侧出现,并且大小就像是纵向还是一样.动作表的框架是根据按钮数等计算的.
有没有人设法迫使UIActionSheet正确显示在指定的方向?
(我也尝试创建一个新的视图,它被转换并具有正确的大小,但是UIActionSheet忽略了它.剩下的是创建一个自动旋转的新UIVIEwController,并让UIActionSheet成为它的一个孩子.但是,这意味着新的视图控制器完全掩盖了我的比赛场地.)
解决方法 事实证明答案很简单.添加此代码以强制UIActionSheets到您想要的任何方向:tempVIEw = [[UIVIEw alloc] initWithFrame:CGRectMake(0,0)];tempVIEw.transform = CGAffinetransformMakeRotation(lastUIAngle);tempVIEw.frame = CGRectMake(0,self.vIEw.frame.size.wIDth,self.vIEw.frame.size.height);[self.vIEw.window addSubvIEw:tempVIEw];UIActionSheet *actionSheet = ...[actionSheet showInVIEw:tempVIEw];
lastUIAngle是pi / 2的倍数,在这种情况下,我从上次更改方向时保存了.
总结以上是内存溢出为你收集整理的ios – 强制UIActionSheet使用特定方向全部内容,希望文章能够帮你解决ios – 强制UIActionSheet使用特定方向所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)