small size modal view in ipad

本文探讨了在iPad应用中实现小尺寸登录窗口的方法,并对比了几种不同方式的优缺点,如使用Popover、ModalPresentationStyle等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:iPad里,要求popup一个login window,该window的size是小的,不要遮住整个iPad当前显示的view。

 

我尝试使用下列代码 (其中LoginViewController是loginview with full iPad screen size,其中中间部分设置成蓝色,而周边部分设置成透明色,造成在popup之后周边部分不遮住当前显示view。

    FormStyleViewController* form=[[FormStyleViewController alloc]initWithNibName:@“LoginViewController"bundle:nil];
    //support modal view clear background
    self.modalPresentationStyle= UIModalPresentationCurrentContext;
    [self presentViewController:formanimated:YEScompletion:nil];

对于上面代码,如果删除

    self.modalPresentationStyle= UIModalPresentationCurrentContext;

那么周边背景就会变黑色

 

如果添加

    form.modalPresentationStyle = UIModalPresentationFormSheet;

那么就会以form style view来显示,虽然整个view size变小了,但导致周边背景色变成灰色而不是透明。

 

不过上述代码导致了一个问题,就是如果旋转iPad,popup window会旋转,但parent view则不会旋转。但如果以formstyle view来显示,则parent view也会旋转。这个issue解决不了,虽然这个链接提供了方法,但我在ios7里运行时画面会变黑。所以使用UIModalPresentationCurrentContext并不是解决方案,除非你的app不能旋转

http://stackoverflow.com/questions/17835123/how-to-rotate-parent-view-controller-when-child-view-controller-orientation-chan/17839785

 

因此,如果你要在ipad里的当前fullscreen view上弹出一个小窗口的话,你有如下选择: 

1. 使用popover 

2. 使用modalPresentationStyle。但要注意,modalPresentationStyle的bg color无法是透明的,所以你必须用尽整个view screen 

3. 不使用小窗口,而使用modal view with full screen


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值