iPad特有的弹框接口
UIPopoverController
用来实现弹框,有两种方式。
UIPopoverController
是一个弹出框,弹出的内容,是一个UIViewController
直接通过代码创建
UIStoryboard *stb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
DIYViewCtrl *vc = [stb instantiateViewControllerWithIdentifier:@"DIY"];
UIPopoverController *pop = [[UIPopoverController alloc] initWithContentViewController:vc];
[pop presentPopoverFromRect:self.button.bounds
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionUp
animated:YES];
-
UIPopoverController
是可以通过指定contentSize
来指定弹出框的大小的。但是建议直接通过storyboard来绘制一个合适大小的ViewController
,弹出时用这个大小就好了。也比较直观 - 初始化的时候需要指定你弹出的这个
ViewController
对应的是哪一个 - 最后来说一下弹框的
method
-(void)presentPopoverFromRect:(CGRect)rect
inView:(UIView *)view
permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections
animated:(BOOL)animated;
*
rect
和inView
如上提示*
permittedArrowDirections
表示弹出框的箭头方向。比如说 direction
是up
,就表示从当前这个锚点向下弹出
-
完成上述的指定后,弹出框的效果就会如下所示
直接在storyboard上通过拖曳添加
直接上图说明
- 从控件中按住
ctrl
拖曳到指定的viewcontroller
中
- 在对应位置指定锚点anchor
- 这里的anchor和上面代码创建中提到的anchor不是一回事,这里的anchor指的是弹出框那个箭头从哪里探出来
- 方法是直接去新建一个
1x1
大小的UIView,放在你需要他弹出的位置即可。
混合使用
我们可以在Storyboard中去新建一个1x1大小的UIView作为弹框的锚点供代码创建时使用。
代码创建会繁琐一些,但是我们在需要传递那个popover
所容纳的viewcontroller
时可以传递我们需要的消息给viewcontroller
。这一点是用storyboard无法实现的。
除此之外,简单的创建弹框提示板,还是可以直接用故事板做的。