封装一个方法,把基本的属性设置都写进里面,外面只管调用即可
-(void)popViewBasicSetup:(UIViewController *)VC withSourceView:(UIView *)sender withDelegate:(id)object{
// 设置 Sytle
VC.modalPresentationStyle = UIModalPresentationPopover;
// 需要通过 sourceView 来判断位置的
VC.popoverPresentationController.sourceView = sender;
// 指定箭头所指区域的矩形框范围(位置和尺寸),以sourceView的左上角为坐标原点
// 这个可以 通过 Point 或 Size 调试位置
VC.popoverPresentationController.sourceRect = sender.bounds;
// 箭头方向
VC.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionAny;
}
细心的可以看到这里我并没有传弹出控制的可见内容,也就是这个属性
toolVC.preferredContentSize = CGSizeMake(204, 152);
是因为,我这里是ipad开发,把这个属性封装进去之后,我不知道为啥,她的高度不受控制,但是宽度可以。如果有人找到解决的方法,可以留言给我。